PLC变量地址释义

来自先虑百科
Xyy讨论 | 贡献2022年9月24日 (六) 13:22的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

前言

每个品牌的PLC,在其开发工具里都有一套地址规范来确认一个变量的存储区域,在Foresight SCADA里,这些原始地址会根据对应协议来生成一个实际采集地址,通常这个地址不用工程师去关心;需要注意的是,如果没有生成采集地址,则说明原始地址不符合规范或者我们尚未实现,需要联系我们进行排查

数据类型支持以及占用空间

  1. Bool,1个bit,在scada里显示为true/false(请注意并非1/0)
  2. Byte,1Byte单字节,0~255
  3. Int, 2 Bytes包含符号整数,数值范围:-32768 ~ 32767
  4. Word、UInt,2Bytes无符号整数,0~655535
  5. DInt,4 Bytes含符号整数,-2,147,483,648 ~ 2,147,483,647
  6. DWord、UDInt,4Bytes无符号整数, 0~4294967295
  7. Real,4Bytes的单精度浮点数
  8. DReal,8Bytes的双精度浮点数
  9. String,单字1Byte的一般用UTF-8来存储

西门子PLC的S7协议

取单个数字

例如:原始地址 %DB30.DBW100 数据类型 Int,转换为SCADA地址会变成 DB30,INT100

原始地址的含义为在30号DB块,偏移100个bytes,取一个W(Word, 2字节,即第100和101两个字节),然后当成Int来读。需要注意的是偏移量100的单位永远都是bytes,而不是字或者双字。

原始地址 %DB30.DBW100 数据类型 Word,转换成SCADA地址会变成 DB30,WORD100,也就是说SCADA里会将数据类型表示在地址里

取浮点数:原始地址 %DB30.DBD102 数据类型 Real,转换成SCADA地址为 DB30,REAL102;也就是从DB30里取了102~105这4个Bytes来当做一个单精度浮点数来展示

取位bit

原始地址 %DB60.DBX50.0 Bool 转换成SCADA地址为 DB30,X50.0 即DB30的第50位byte的第0位

取数组/连续bits

原始地址 %DB60.DBX0.0 数据类型Array of Word(20)转换成SCADA地址为 DB60,WORD0.20 最终读出来的为长度20的Word数组 [1, 0, 122, 255, .....]

字符串