S7-300和S7-400集成PN口的S7通信常见问题
• ®两个S7-300PN CPU之间建立S7连接可有哪些通信方式?
答:可以有确认连接、非确认连接、单边通信
• ®使用FB8/9时,数据已发送,程序块没有错误显示,但是没收到任何数据?
答:发送区与接收缓冲区长度不一致。
• ®使用FB12/13时,发送区与接收缓冲区长度是否必须一致?
答:发送区的大小只要不**过接收缓冲区就可以。
• ®FB12发送数据时,发送数据的长度由哪个参数决定?
答:发送长度由LEN决定。但发送数据的起始地址和***大长度由SD_1决定。今天调试了一天的MODBUS通讯,我把常用的通讯都总结了一遍,分享给大家,希望能有帮助:
1.1 功能码"03":读多路寄存器输入
此功能码作液晶屏启动时需读出初始设置参数,如:直流电压上限等参数值用
例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。
从机(PDM)数据寄存器的地址和数据为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
1.2 功能码"04":读多路输入寄存器
例如:主机要读取地址为01,起始地址为0000的3个输入寄存器数据。
从机(PDM)数据寄存器的地址和数据为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
1.3 功能码"06":写单路寄存器
例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C的PDM表原存储信息为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
与主机发送的报文格式及数据内容完全相同。
1.4功能码"10":写多路寄存器
主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PDM的存储器都是二个字节。由于Modbus通讯规约允许每次较多保存60个寄存器,因此PDM一次也较多允许保存60个数据寄存器。
例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式: