(1)PLC编程
1.1:创建一个TCPClient的子程序,拖拽一个TCP_CONNECT的库指令,与服务器程序不同的是,这里需要把Active设置为ON,IP地址和端口号需要根据上位机实际情况填写,程序段1编写如下图所示:
1.2:拖拽一个TCP_SEND的库指令,对于该指令的每个引脚填写,ConnID为2,Req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,DataLen及DataPtr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:
1.3:拖拽一个TCP_RECV的库指令,对于该指令的每个引脚填写,ConnID统一为2,MaxLen为接收的Zui大程度,DataPtr表示接收字节存放的起始位置,程序段3如下图所示:
1.4:Zui后需要编译,如果已经编写过服务器程序,这里就不需要分配地址了,直接在MAIN主程序中调用TCPClient这个子程序,并下载到PLC中,PLC编程部分结束。
(2)TCP调试助手测试
如果PLC程序编写没问题,打开一个网络调试助手,设置模式为TCPServer,输入端口号为2000,即可开启服务器。
服务器开启后,PLC端会自动连接服务器,并且每隔一秒发送100个字节数据过来,这100个字节即对应VB500-VB599的值。
(3)上位机服务器软件开发
通过与状态图表进行对比,验证可以正常读取和写入PLC数据。
三、整体
后续通过测试,验证PLC可以作为服务器和客户端与上位机进行通信。本次主要针对西门子PLC的开放式TCP通信作了较为详细地阐述,由于篇幅有限,无法将上位机部分的具体编程代码进行展示分析。