关于数据类型的问题

看官网上的视频教学,S7 1200的MODBUS与S7通讯定义读写数据区的时候总是用数组,然后用指针引用,能不能不用数组,直接在数据块里定义不同类型的变量,然后在通讯指令里用指针引用啊?如:P#DB8.DBX20.0 WORD 10等,还有结构类型STRUCT,S7通讯上的PUT与GET指令在软件帮助里说“传送数据结构(例如 Struct)时,参数 ADDR_i 处必须使用数据类型 CHAR“不知道什么意思

最佳答案

和数据类型没有关系,主要是DB定义的长度够用就行;
如:P#DB1.DBX0.0 bool 800,则DB块里定义的数据长度有100个字节就可以,这100个字节可以是800个bool,可以是50个INT,可以是25个DINT或REAL;

“传送数据结构(例如 Struct、array)时,参数 ADDR_i 处必须使用数据类型 CHAR,byte,word或Dword“,我这么理解的,就是当DB里定义的数据类型是Struct、array时(假设为长度100字节的数组),则ADDR_i 这里需要填写成例如,P#DB1.DBX0.0 CHAR 100 或 P#DB1.DBX0.0 byte 100或 P#DB1.DBX0.0 word 50 或P#DB1.DBX0.0 Dword 25

提问者对于答案的评价:
根据你所说的我做了S7和MODBUS通讯的实验,和你说的一样,谢谢!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc198049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月26日 上午12:46
下一篇 2017年8月26日 上午12:46

相关推荐