西门子200Smart PLC的Socket通信技术

对于自控或电气工程师来说,西门子plc是每个人都非常熟悉的一款plc品牌;而对于上位机开发工程师来说,socket通信或tcp/ip协议也是必须要掌握的一种通信方式。刚好手头有一款西门子的200smart plc,可以利用它来跟大家聊聊socket通信的那些事儿。
相比较而言,西门子plc对socket通信的支持性是很不错的。如果你在使用西门子软件或者逛西门子论坛时,发现一个词叫做open user communication或开放式通信,没错,那其实就是我们说的socket通信方式。关于这一点,我们可以从以下两张图中看出,分别为s7-200smart编程软件micro/win smart v2.5及博途tia v15.1编程软件中关于通信库的部分截图:
我们可以看到无论是西门子的中高端plc还是低端plc,都是支持开放式tcp/udp通信的,既然都支持,我们来看下如何实现。
众所周知,对于socket通信来说,是可以支持tcp、udp等多种通信方式,但是今天在这里,我们主要针对tcp这种通信方式。除此以外,大家都知道,socket会存在服务器和客户端的说法,也就意味着,同样是使用socket通信,我们仍然需要确定到底plc是作为服务器还是作为客户端,因为不管对于plc编程或者上位机开发来说,这两种方式都是完全不同的,下面做具体介绍。
plc作为tcp服务器的实战应用   part 01  
(1)plc编程
1.1   创建一个tcpserver的子程序,拖拽一个tcp_connect的库指令,对于该指令的每个引脚对应的含义,大家可以按下f1直接获取在线帮助,程序段1编写如下图所示:
1.2  拖拽一个tcp_send的库指令,对于该指令的每个引脚填写,connid为1,req为触发条件,必须为沿信号,这里为了方便,直接使用1秒的脉冲信号,datalen及dataptr为发送的起始字节指针及发送的字节长度,程序段2如下图所示:
1.3  拖拽一个tcp_recv的库指令,对于该指令的每个引脚填写,connid统一为1,maxlen为接收的最大程度,dataptr表示接收字节存放的起始位置,程序段3如下图所示:
1.4  最后需要编译,编译会提示需要给库分配地址,点击文件下的存储器,给该库分配地址即可,然后在main主程序中调用tcpserver这个子程序,并下载到plc中,plc编程部分结束。
(2)tcp调试助手测试
如果plc程序编写没问题,打开一个网络调试助手,输入对应的ip地址及端口号,即可连接上服务器。
连接服务器后,plc端会自动每隔一秒发送200个字节数据过来,这200个字节即对应vb100-vb299的值。
(3)上位机客户端软件开发
通过与编程软件的状态图表进行对照,可以实时读取plc数据,并随时设置相应的数值。
plc作为tcp客户端的实战应用    part 02  
(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为接收的最大程度,dataptr表示接收字节存放的起始位置,程序段3如下图所示:
1.4   最后需要编译,如果已经编写过服务器程序,这里就不需要分配地址了,直接在main主程序中调用tcpclient这个子程序,并下载到plc中,plc编程部分结束。
(2)tcp调试助手测试
如果plc程序编写没问题,打开一个网络调试助手,设置模式为tcp server,输入端口号为2000,即可开启服务器。
服务器开启后,plc端会自动连接服务器,并且每隔一秒发送100个字节数据过来,这100个字节即对应vb500-vb599的值。
(3) 上位机服务器软件开发
通过与状态图表进行对比,验证可以正常读取和写入plc数据。
整体总结   part 03  
后续通过进一步测试,验证plc可以同时作为服务器和客户端与上位机进行通信。
本次主要针对西门子plc的开放式tcp通信作了较为详细地阐述,由于篇幅有限,无法将上位机部分的具体编程代码进行分析。


程序员为什么从现在就应该开始看书
张家口预计2020年实现制氢每年2万吨建成加氢站21座 将进一步推动氢燃料电池
美国DARPA:借助AI的力量,发掘世界中的因果联系
使用MAX32520的安全USB加密狗应用示例
同欣智能科技液晶手持机简介
西门子200Smart PLC的Socket通信技术
厂家加工M12线缆时需注意哪些事项?
奥迪新款概念车美到炸,据说明年会上市?
智能音箱促进MEMS麦克风市场增长
电池备份系统管理器节省空间和功耗,具备份电池充电、“无损耗”
无线派力荐 富勒A25G无线鼠深度详测
影响LED智慧灯杆的多个因素和现状分析
迅雷11.1.3.1110正式版来了:免费使用云盘功能,支持电脑、手机同步
华为matepad pro什么时候上市的 6月10正式开售 价格3799起
如何构建车能路云融合发展的产业生态
“寻向”强化蓝牙定位至“厘米级” 或将迎来定位新时代?
中国联通携手3Glasses打造首家“5G星球”XR线下体验站
诺基亚归来,派了个小王来巡山
全球首批高温气冷堆核燃料元件启运发货:我国完全拥有自主知识产权
AI行业到底有多火_应届生年薪50万还没招不到人