欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:0分 | 解决时间:2018-05-28 23:38
产品版区:
SIMATIC S7-1200
孤独天空
孤独天空 - 资深学长  第3级
CPU 1212DC,项目要求用PLC控制伺服,并且每隔固定时间将其中某些数据传输给上位机做显示,形成时间波形。
这个时间间隔要求越小越好,要达到个位数MS级,WINCC试了下最快采集速度100MS不满足要求,并且上位机软件有现成的,Visual Studio编写的,PLC只是其中一小部分。
后来与软件测试了TCP/IP通讯,通讯做通了,但软件那边反馈有两个问题,
1延时,打个比方我这边一次性循环发100次后停止,我这边停了,软件那边延时好几秒,才发现停止接收数据。可能软件那边显示控件反应跟不上,先不做讨论。
2丢数据,我这边发送100次,那边接收总数会少几个。
然后建了一个新的最简单的项目,并且把通讯资源调到了50,专门来测试这个TCP/IP通讯,请大侠指正。
程序很简单,循环中断OB30,时间5MS,M2.0 5MS导通,5MS关闭,就是10MS发送一次,将浮点数1.0(16#3F 80 00 00)(4个字节),循环发送。并且计数发送次数。
发现计数10682次,接收到的字节为41812/4=10453个,少了200个。
然后我把OB30改为10MS,即每20MS发送一次,有改善,丢的数据很少。把OB35改为20MS,即每40MS发一次,就没有丢数据现象了。
本人PLC,通讯,原理都不甚了解。PLC控制部分尚没做好,上位机采集这块也不行,
请教各位大侠,我这样的方式是否正确,怎么才能优化改善每10MS发一次数据并且不丢失。之前用的232自由口通讯,数据更是丢的一大糊涂,换成TCP/IP依然没能做到完美。
小程序:
版主推荐答案
回答者:
yming
回答时间:2018-05-28 11:18
提问者对于答案的评价:
暂无回答
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!