我用西门子200SMART-PLC作为客户端(TCP_Client),向电脑发送报文(TCP测试软件),收到了报文之后,比如:
00 01 00 00 00 06 FF 01 00 0A 00 0A 然后我用TCP测试软件给PLC回复报文:00 01 00 00 00 05 FF 01 02 FF 00,但是PLC没有反应,VW里也没有任何数据,想问问怎么回事,是我哪里理解错了吗。我的原来意思就是想用电脑模拟另一个PLC的服务器,来让他们之间互相回报文。我用的库文件是TCP_Client 。
最佳答案
这种情况无法在PC侧收到数据的可能原因:
通讯程序固有的缺陷,即客户端发送数据让PC服务器端接收数据,这个很多调试助手都有此功能。
但是,很多调试助手并没有接收数据后,返回响应数据的功能。
正如你的描述,plc发送00 01 00 00 00 06 FF 01 00 0A 00 0A 数据给PC的调试助手,这个很容易做到,一般任何一款调试助手都可以完成,但是,要返回数据,你没有这种自动接收到数据返回,就只能自己模拟了。即调试助手侧发送数据让plc放接收数据,如调试助手发送00 01 00 00 00 05 FF 01 02 FF 00数据给pc侧,即将发送数据请求,接收数据响应分做2步测试。
你调用的TCP_Client 指令一般不会出现问题,可能存在的问题是V储存区域地址的规划。
提问者对于答案的评价:
追问,什么时候用TCP_Client什么时候用TCP_CONNECT,也就是面对什么设备的时候使用哪个?多教程都没写详细!请教请教,并且我也模拟CP回复给PLC报文了,PLC没反应!请教请教
最佳答案作者回复:
这个需要根据双方具备的通讯协议条件判断的。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279594.html