300340(西门子S7300串口模块CP340RS232C数据接收问题解决)
一、问题描述:
PLC接收拧紧枪数据不稳定,接收拧紧扭矩及拧紧角度数据串位乱码,数据库显示1/3数据接收异常;
正常数据格式为 “B1_006191031220031005.550005.000006.00A000003500000010000360AA 0 0”
异常数据格式为:“00006.00A0000035000000100003……”
“00000010000360AA……”等等。
数据接收不是以“B1”开始,随机起始位,造成扭矩数据及角度数据不能准确的截取出来。
如下图所示:
二、主要硬件构成:
1、CPU:S7-300 315-2DP+CP340
2、拧紧枪控制器:mPro400GC控制器
三、通讯方式:
串口通信
mPro400GC控制器默认串口输出COM2与CP340接口连接。
四、CP340参数设置
更改前的参数设置:
通信波特率:9600bps,数据位:8位,停止位:1位,奇偶校验:无,字符延迟时间:4ms;(已由4ms改成15ms)下图所示:
五、测试方法及现象:
1、串口线路更换测试;(没有效果)
2、拧紧控制器向PC串口调试助手发送数据测试;(数据结构正常,但发现接收区字符显示速度不一致)
3、PC串口调试助手向拧紧控制器发送数据测试;(数据正常)
4、更换串口模块测试;(没有效果)
5、更换拧紧控制器测试;(没有效果)
6、串口模块参数修改;(数据正常)
更改后的参数设置:
通信波特率:9600bps,数据位:8位,停止位:1位,奇偶校验:无;
使用结束标准“固定消息帧长度”的接收操作。消息帧长度:69;如下图所示:
最后总结,
1、 西门子预约客服工程师的回答仅供参考,他不在现场没有经过类似问题也不能一针见血的解决问题,回答时间也不及时;
2、 西门子例程不是所有的设置必须按照例程默认来,其他功能也要自己研究;
3、 主要原因是拧紧控制器输出数据的字符时间间隔不是绝对固定的,与PLC串口模块设置的接收字符的时间周期不符(采用默认接收数据结束标准的延迟时间不好确定),造成PLC提前中断接收,新数据来了又开始接收覆盖了开始接收区的值,即串口模块通讯设置参数与拧紧控制器输出不匹配。
以上供大家参考,欢迎关注评论交流。