如图所示,已在组态中配置了CP343-1的TCPIP连接参数,并且勾选了主动连接,当PLC运行后 会自动去主动连接 对方TCPIP Server,我发送数据只需要使用AG_Send功能块就行了。
但是现在的问题是怎么用一个变量 在我调用AG_Send之前就获得连接有没有被建立。因为PLC本体的以太网口可以使用TCON功能块来先建立连接,同时也可以获得连接有没有被建立,但CP343-1是组态完成就自己会去主动连接了,没有TCON,那要如何去获得这个连接是否被建立的信息。请不要用AG_SEND去发一个数据然后看有没有发送成功来间接获得,那样做是不对的
问题补充:
需要的是程序中某个变量可以表达,而不是连上西门子软件去在线诊断
图片说明:
最佳答案
1、可以和通讯的对方做个心跳信号,来判断通讯是否正常
2、可以使用AG_Send输出的Error和Status,错误标记和状态字来判断是否连接成功
看附图
或者参考手册:
SIMATIC NET 用于 SIMATIC NET S7 CP 的程序块 - 编程手册
https://support.industry.siemens.com/cs/cn/zh/view/62543517
246页 5.1.2.4 AG_SEND 和 AG_LSEND 的条件代码
的介绍
补充:
找到一个指令AG_CNTRL这个可以对连接进行诊断呢
看上面手册的
53页 2.3 用于连接和系统诊断的程序块
图片说明:
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc289894.html