主题
IEC-60870-104 通讯协议
通道设置
参数说明:
名称 | 必填 | 说明 |
---|---|---|
IP | 是 | 子站IP地址。 |
端口 | 是 | 子站通讯端口,默认为 2404。 |
连接超时 | 是 | 默认 3 秒 |
公共地址字节数 | 是 | 公共地址字节数,默认为 0 |
传输原因字节数 | 是 | 默认 2 |
T1 | 是 | 发送一个I格式报文或U格式报文后,必须在T1的时间内得到接收方的认可. |
T2 | 是 | 接收方在接收到I格式报文后,若经过T2时间未再发送新的I格式报文,则必须向发送方发送S格式帧对已经收到的I格式报文进行认可,显然T2必须小于T1,默认值10s。 |
T3 | 是 | 若 T3 内未能接收到任何报文,则发送测试链路报文(U帧)。 |
K | 是 | 发送方在有K个I格式报文未得到对方的确认时,将停止数据发送 |
W | 是 | 接收方最迟在接收W个I格式报文后应发出认可 |
点位寻址
地址格式采用标识寻址的方式,它允许访问设备上的每个单独的数据点,包括遥测点和遥控点。 设备地址与点位地址拼接在一起,组成完整的标识地址,即:标识地址 = 设备地址+点位地址。 标识地址的格式为:TYPEID.IOA.SUB-TYPE.OPTIONAL.OPTIONAL,其中:
- TYPEID 为 ASDU 类型标识
- IOA 为信息对象地址
- SUB-TYPE 表示额外属性
- OPTIONAL 是一个非必须的扩展属性
信息对象地址(IOA)表示从站设备的点位地址。 取值范围为1 ~ 254、65535、16777215之间的整数; 这取决于信息对象地址大小属性是否设置为一个、两个或三个字节。
TYPEID表示协议定义的ASDU类型。 类型包括监测和控制。 每个监测 TYPEID 支持多个协议定义的ASDU编号。 监测类型为只读数据。 控制类型为可写入的数据。
监测点类型标识表
TYPEID | 点位类型 | ASDU | 描述 |
---|---|---|---|
M_SP | 布尔型 | 1,30 | 单点 |
M_DP | 整数型 | 3,31 | 双点,可选值包括:0,1,2,3。 |
M_ST | 整数型 | 5,32 | 步位置,范围-64至+63 |
M_BO | 布尔型 | 7,33 | 32位的位串,支持位号选项,SUB-TYPE 为 Value |
M_ME_NV | 浮点型 | 9,21,34 | 遥测归一化值 |
M_ME_SV | 浮点型 | 11,35 | 遥测标度化值 |
M_ME_FV | 浮点型 | 13,36 | 遥测短浮点数 |
M_IT | 整数型 | 15,37 | 计数器,支持 SUB-TYPE 为 SQ 或 Value |
监测类型支持的子类型由SUB-TYPE决定,请参阅下表:
SUB-TYPE | Data Type | 描述 |
---|---|---|
Value | 对应 TYPEID | 总召唤或事件推送的数据。如果设置了质量描述符IV(无效)位,则该标记显示质量差。 当与M_BO一起使用时,它支持位索引。 例如,要访问value标签中的第0位,可以使用子类型value加上【.Value.0】,例如 【M_BO.100.Value.0】。 |
Timestamp | 日期时间 | 总召唤或事件推送的数据的时间戳。 如果设备提供的数据没有时间戳,则timestamp标签值设置为0001-01-01T00:00:00,且设置为质量差。 |
QualityDesc | 整数型 | 总召唤或事件推送的数据的质量描述。 |
SQ | 整数型 | 与M_IT 类型相关联的序列字段。 0到31之间的数字。 |
监测数据地址示例 如果需要访问地址为 200 的双点数据。 下面的点位地址代表了地址为 200 的双点对象的所有数据:
- M_DP.200.VALUE
- M_DP.200.TIMESTAMP
- M_DP.200.COT
- M_DP.200.QUALITYDESC
控制点类型标识表
TYPEID | 点位类型 | ASDU | 描述 |
---|---|---|---|
C_SC | 布尔型 | 45 | 单点 |
C_DC | 整数型 | 46 | 双点,可选值包括:1,2。 |
C_RC | 整数型 | 47 | 调节步位置的命令。 取值为1(下),2(上)。 |
C_SE_NV | 浮点型 | 48 | 归一化值 |
C_SE_SV | 整数型 | 49 | 标度化值 |
C_SE_FV | 浮点型 | 50 | 短浮点数 |
C_BO | 布尔型 | 51 | 32位的位串。 不支持位索引 |
控制点支持的子类型由 SUB-TYPE 决定,请参阅下表:
SUB-TYPE | Data Type | 描述 |
---|---|---|
SelectExecuteValue | 对应 TYPEID | 两步写入值。 写入这个命令会导致关联的命令ASDU使用“选择并执行”(select-and-execute)写入设备。 在这种模式下,写入操作伴随着来自设备的双重命令/响应。 |
DirectValue | 对应 TYPEID | 单步写入值。 写入这个命令会导致关联的命令ASDU使用直接执行写入设备。 在这种模式下,写入只需要设备上的一个命令/响应。 |
Select | 对应 TYPEID | 两步写值过程的第一步,也称为遥控预置(Select Before operation, SBO)。 写入该命令会导致设备选择关联的命令ASDU。 对于需要SBO命令的点,这个过程可以使用DirectValue写入完成(假设选择超时没有过期)。 |
Deselect | 对应 TYPEID | 与Select操作相反; 写入此命令将导致设备取消选择关联的命令ASDU。 |
控制点支持的扩展选项凡 OPTIONAL 决定,请参阅下表:
OPTION | Applicable TypeIDs | 描述 |
---|---|---|
Timestamp | All Control ASDUs | Control ASDU includes the master system time in the transmitted command. If not included, timestamp is not transmitted. These are effected by the configured time zone settings. |
ShortPulse | C_SCC_DCC_RC | Control ASDU includes ShortPulse QoC. Only one of ShortPulse, LongPulse, or Persistent may be used at a time. Not specifying allows the device to use its default setting. |
LongPulse | C_SCC_DCC_RC | Control ASDU includes LongPulse QoC. Only one of ShortPulse, LongPulse, or Persistent may be used at a time. Not specifying allows the device to use its default setting. |
Persistent | C_SCC_DCC_RC | Control ASDU includes Persistent QoC. Only one of ShortPulse, LongPulse, or Persistent may be used at a time. Not specifying allows the device to use its default setting. |
控制点地址示例 如果客户端必须控制IOA 100监控的单点数据,可以通过控制asdu来实现。 60870-5-104中,监测点是只读的(用于从机向主机传输数据),不能写入。 但是,可以将从机配置为在2100地址暴露单个控制点,这样它就与监测点 100 相关联(对于同一点)。 当主机机改变IOA 2100 的值时,变化会反映在被监控的单点IOA 100上。 对于单点2100,可以使用以下标签向子站发送控制指令。
- C_SC.2100.SELECTEXECUTEVALUE
- C_SC.2100.DIRECTVALUE
- C_SC.2100.SELECT
- C_SC.2100.DESELECT
除了写策略外,还可以使用可选的写限定符来指定从机的行为。 下面的标记表示几个可以调整写限定符的选项。 写限定符可用于C_SC、C_DC和C_RC。 DIRECTVALUE和SELECTEXECUTEVALUE子类型都支持所有写限定符。
- C_SC.2100.SELECTEXCECUTEVALUE.PERSISTENT
- C_SC.2100.DIRECTVALUE.LONGPULSE
- C_SC.2100.DIRECTVALUE.PERSISTENT
- C_SC.2100.SELECTEXECUTEVALUE.SHORTPULSE
除了写限定符之外,IEC 60870-5-104主驱动程序协议还支持包含时间戳的控制指令。当标签包含TIMESTAMP可选语法时,驱动程序自动使用时间戳控件ASDU。
- C_SC.2100.SELECTEXCECUTEVALUE.PERSISTENT.TIMESTAMP
- C_SC.2100.DIRECTVALUE.LONGPULSE.TIMESTAMP
- C_SC.2100.DIRECTVALUE.PERSISTENT.TIMESTAMP
- C_SC.2100.SELECTEXECUTEVALUE.SHORTPULSE.TIMESTAMP