20100728力控与信捷PLCmodbus通讯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
力控上位机与信捷PLC标准MODBUS通讯设置
系统组成:1台力控上位机电脑、4套信捷XC3 PLC
通讯硬件连接如下图:
上位机软件设置如下:
设备驱动根据通讯协议不同分为串口ASCII,串口RTU,TCP等三种协议。
如图:根据您所使用的PLC、智能模块的通讯形式选择设备驱动,此处选标准MODBUS(RTU串行口),如下图。
下图是设备组态用户界面:
根据PLC或智能模块内部设置的地址填写“设备地址”,1#PLC对应地址1,其他依次2、3、4。
更新周期:默认50毫秒就是说每隔一个更新周期读一次数据包。
请根据组态工程的实际需要和PLC的通讯反应时间设定。
超时时间:默认8秒,当到超时时间的时候,PLC的数据还没传上来被认为是一次通讯超时。
请根据组态工程的实际需要和现场的通讯情况设定。
故障后恢复查询:当设备发生故障导致通讯中断,系统会每隔一定“周期”查询该设备。
直到“最长时间”如果还没有反应,在这次运行过程中系统将不再查询该设备。
“动态优化”和“初始禁止”请在力控工程人员的指导下使用,否则请保持默认状态。
下图为串口通讯设置:请根据PLC或智能模块的通讯说明设置( 波特率,数据位,校验位,停止位。
)
下图关于MODBUS协议通讯设置。
32位数据的读取:主要是解决如何解析32位整数、浮点数。
请根据你所使用的PLC或智能模块中32位数据类型上传的格式来选择相应的格式。
包的最大长度:是指MODBUS中一条数据所读取的字节数,
包的长度越长,一次读取的数据就越多,通讯效率就越快。
MODBUS协议中规定数据包最大长度不能超过255。
另外有些PLC对包长还有限制,请根据具体情况配置。
6号命令对应MODBUS协议06功能代码;预置寄存器地址从40000开始的数据——预制单个寄存器。
当你选择6号命令时,组点时下置数据时将使用6号命令。
16号命令对应MODBUS协议10功能代码;预置寄存器地址从40000开始的数据——预制多个寄存器。
当你选择16号命令时,组点时下置数据时候将使用16号命令。
四套PLC最终添加后:
PLC设置如下:
从上图看出,这里的波特率选的19200BPS,数据位8位,停止位1位,奇偶校验为偶校验,此设置为信捷PLC 默认的MODBUS设置,我们不作改动;PLC上A、B端子占用的是串口2所以选串口2。
数据连接下图是数据连接用户界面:
“01号命令”:对应着MODBUS协议01功能代码;也就是读寄存器地址从0开始的数据——读线圈状态,读DO离散输出寄存器。
“02号命令”:对应着MODBUS协议02功能代码;也就是读寄存器地址从10000开始的数据——读输入状态,读DI离散输入寄存器。
“03号命令”:对应着MODBUS协议03功能代码;也就是读寄存器地址从40000开始的数据——读线保持寄存器,读HR保持寄存器。
“04号命令”:对应着MODBUS协议04功能代码;也就是读寄存器地址从30000开始的数据——读输入寄存器,读AR输入寄存器。
“05号命令”:对应着MODBUS协议05功能代码;也就是写寄存器地址从0开始的数据——强制单个线圈。
“08号命令”:对应着MODBUS协议08功能代码;——诊断。
组态时请注意两点:
1、请了解清楚您的设备地址是从1开始的,还是从0开始的。
如果是从1开始就直接填写原地址即可;如果是从0开始的要在原地址的基础上加1才行。
2、如果您的设备地址是4XXXX、3XXXX、1XXXX,请根据上文选择相对应的命令,然后添上后四位地址即可。
例如:
您要读取的寄存器地址10009,寄存器地址从0开始。
特别注意:
信捷PLC MODBUS地址表如下:
由上图可见,信捷PLC的MODBUS地址表对应力控软件只有“01号(含X、Y、M等软元件)”和“03号(含D、TD等软元件)”命令有效。
具体的在力控中组态进行如下组态:
比如说M0对应的力控数据组态如下:
因为是地址是00000,所以选择“01号命令”
如果寄存器地址是从0开始,地址0要加1变为1;
比如说M10对应的力控数据组态如下:
因为是地址是00010,所以选择“01号命令”
如果寄存器地址是从0开始,地址10要加1变为11;
比如说X5对应的力控数据组态如下:
因为是地址是16385,这里仍然选择“01号命令”
如果寄存器地址是从0开始,地址16385要加1变为16386;
比如说Y0对应的力控数据组态如下:
因为是地址是18432,选择“01号命令”
如果寄存器地址是从0开始,地址18432要加1变为18433;
比如说D0对应的力控数据组态如下:
因为是地址是0,选择“03号命令”
如果寄存器地址是从0开始,地址0要加1变为1;
常见问题
1、如果不能正常通讯,请依次检查下列设置:
a、设备的站号,波特率,停止位,数据位,奇偶校验等的设置是否正确。
b、通讯校验时间间隔的设置是否正确,设置为0将导致设备不能通讯。
2、如果某些参数的读写总是返回错误信息,请查看该设备的使用说明是否填写的地址超出寄存器有效地址范围。
3、如果所有参数的读写都返回错误信息,请检查“等待时间”的设置。
4、如果所有参数的读写均超时,请检查设备连接情况。
5、如果32位数据格式读写的数据不对,请根据具体的结构到
“设备配置第三步”的界面中修改。
6、如果读出的数据与实际的数据不符,请检查寄存器的地址是否是从0开始还是从1开始,如果从0开始的要在原地址的基础上加1。