
西门子PLC是电气或自控工程师的得力助手,每一位专业人士都对其非常熟悉。而对于机开发工程师来说,Socket通信或TCP/IP协议是他们必须掌握的一项技能。最近我得到了一款西门子的200Smart PLC,借此机会,我想和大家聊聊Socket通信的相关知识。
西门子PLC对Socket通信的支持非常出色。当你在使用西门子软件或浏览西门子论坛时,遇到的Open User Communication或开放式通信,其实就是我们所说的Socket通信方式。在S7-200Smart编程软件Micro/Win Smart V2.5及博途TIA V15.1编程软件中,通信库的部分截图可以证实这一点。
无论是西门子的中高端还是低端PLC,都支持开放式TCP/UDP通信。接下来,我们将探讨如何实现这一功能。
Socket通信支持TCP、UDP等多种方式,但今天我们将重点关注TCP通信。Socket通信涉及服务器和客户端的概念。对于PLC来说,它既可以作为服务器,也可以作为客户端。在PLC编程或机开发中,这两种方式有着显著的不同。下面将详细介绍这两种应用方式。
一、PLC作为TCP服务器的实际应用
1. PLC编程:
(a) 创建TCPServer的子程序,并使用TCP_CONNECT库指令。该指令的引脚功能可以通过按下F1获取在线帮助。
(b) 使用TCP_SEND库指令来发送数据。
(c) 使用TCP_RECV库指令来接收数据。
(d) 编译程序并为库分配地址。然后在MAIN主程序中调用TCPServer子程序,并下载到PLC中。
2. TCP调试助手测试:如果PLC程序无误,使用网络调试助手连接服务器,即可接收PLC发送的数据。
3. 机客户端软件开发:与编程软件的状态图表对照,实时读取PLC数据并进行设置。
二、PLC作为TCP客户端的实际应用
1. PLC编程:创建TCPClient的子程序,使用TCP_CONNECT库指令连接服务器,并使用TCP_SEND和TCP_RECV库指令进行数据传输。编译后,下载到PLC中。
2. TCP调试助手测试:设置网络调试助手的模式为TCP Server,并开启服务器,等待PLC连接并发送数据。
3. 机服务器软件开发:验证数据的读取和写入功能。
三、整体经过进一步测试,确认PLC可以同时作为服务器和客户端与机进行通信。
本文主要介绍了西门子PLC的开放式TCP通信。由于篇幅有限,未能详细分析机的具体编程代码。如有需要,请私信我获取相关资料。
