PLC变量地址释义
跳到导航
跳到搜索
前言
每个品牌的PLC,在其开发工具里都有一套地址规范来确认一个变量的存储区域,在Foresight SCADA里,这些原始地址会根据对应协议来生成一个实际采集地址,通常这个地址不用工程师去关心;需要注意的是,如果没有生成采集地址,则说明原始地址不符合规范或者我们尚未实现,需要联系我们进行排查
数据类型支持以及占用空间
- Bool,1个bit,在scada里显示为true/false(请注意并非1/0)
- Byte,1Byte单字节,0~255
- Int, 2 Bytes包含符号整数,数值范围:-32768 ~ 32767
- Word、UInt,2Bytes无符号整数,0~655535
- DInt,4 Bytes含符号整数,-2,147,483,648 ~ 2,147,483,647
- DWord、UDInt,4Bytes无符号整数, 0~4294967295
- Real,4Bytes的单精度浮点数
- DReal,8Bytes的双精度浮点数
- 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, .....]