用S7200自由口通讯,接收和发送通讯正常。但是出现一个状况是,上位机接收到PLC发送的数据后,必须要间隔至少1500ms再给PLC发指令才能正常通讯,少于1500ms就会丢失数据。每次接收和发送都是17个字节的数据,波特率9600。为了检测是不是上位机的问题,我用上位机和串口调试助手通讯,500ms间隔是没有问题的,证明上位机没有问题;用PLC和串口调试助手通讯,也是必须要1500ms以上才可以正常通讯。这是什么原因?我PLC程序的问题?
问题补充:
我的程序通讯没问题,就是需要时间间隔长,是因为我的程序里耗时太多了吗?我把我的程序传上来,请大家指正。我的QQ:554670370,邮件:cugoflee@163.com,希望能得到正确的答案。
图片说明:
最佳答案
一般空闲线的计算方法:该总是大于在指定波特率下传输一个字符(包括起始位、数据位、校验位和停止位)的时间。也可以理解为两帧数据之间的间隔。
如果这个通讯仅仅只是这个数据的发送或者接收,请重新确认SMB30、SMB86、87、88、89、SMW90、92、SMB94这些数据的值。
补充问题回复:
你仔细检查你的初始化程序。
SMW90和SMW94是字类型数据,而不是你写的字节类型,改过来试试。
提问者对于答案的评价:
问题确实可能出在初始化程序,目前还没有调试到理想的状态。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc170695.html