看官网上的视频教学,S71200的MODBUS与S7通讯定义读写数据区的时候总是用数组,然后用指针引用,能不能不用数组,直接在数据块里定义不同类型的变量,然后在通讯指令里用指针引用啊?如:P#DB8.DBX20.0WORD10等,还有结构类型STRUCT,S7通讯上的PUT与GET指令在软件帮助里说“传送数据结构(例如Struct)时,参数ADDR_i处必须使用数据类型CHAR“不知道什么意思
最佳答案
和数据类型没有关系,主要是DB定义的长度够用就行;
如:P#DB1.DBX0.0bool800,则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.0CHAR100或P#DB1.DBX0.0byte100或P#DB1.DBX0.0word50或P#DB1.DBX0.0Dword25
提问者对于答案的评价:
根据你所说的我做了S7和MODBUS通讯的实验,和你说的一样,谢谢!
专家置评
已阅,最佳答案正确。