研选课堂
HOME
研选课堂
正文内容
socket编程plc 基于西门子PLC的Socket通信深度剖析(内含福利)
发布时间 : 2025-03-16
作者 : 小编
访问数量 : 23
扫码分享至微信

基于西门子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服务器的实战应用

(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客户端的实战应用

(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数据。

三、整体总结

后续通过进一步测试,验证PLC可以同时作为服务器和客户端与上位机进行通信。本次主要针对西门子PLC的开放式TCP通信作了较为详细地阐述,由于篇幅有限,无法将上位机部分的具体编程代码进行展示分析。

之前小编给大家分享了三菱相关的全套资料,后台就收到很多朋友咨询有没有西门子的资料。小编把收集整整一年的干货,一次送出来,赶紧动手收藏好!先来看看具有都包含哪些?

领取方式:关注并私信【西门子】

西门子1500资料

西门子1200资料

西门子200smart资料

(以上仅为部分资料展示)

如何获取更多 电气热门资料?

操作指引如下!

绝对干货!资深电气工程师为你讲解Socket通讯(图文详解)

首先我们来看下socket的定义。

Socket是一个通讯协议,简单说就是带有网口的2个设备,而且这两个设备都支持socket的情况下,可以实现数据的交互。三菱的5U和Q系列的,只要带网口的,就可以实现socket通讯。

以下以两个Q系列的plc作为样例,讲解socket的使用。

两个设备通讯,有一个作为主动的一方,我们叫做主站,在socket里面叫Active,被动的一方,我们叫做从站,在socket里面叫Unpassive。新建通讯选择好就能定好作为主还是从。

一、我们先新建一个主站的程序,首先把配置配置好。

把IP地址设置好,然后点击打开设置,进入下面界面,选择socket通讯,主站选择Active,填写好从站plc的IP还有端口号,设定好自己的端口号。端口号一般从1000以上进行设置,随意设置,假如我只和一台plc通讯,我这时指定了一个1025的端口号和对方进行通讯。我还想和别的设备进行通讯,可以在第二行再建立一个通讯,这时必须再指定一个端口号,比如1200、1230、1400。。。 。。。随便填,然后输入对方的端口号和IP地址,就能够进行通讯。

二、配置好了就可以给主站编程了。

程序主要分为4个步骤:通讯建立、数据发送、数据接收、通讯关闭。

1、通讯建立

2、数据发送:把数据1234、5678、2234发送过去

3、、数据接收:把数据接收到D5001、D5002、D5003 这3个寄存器里面

4、通讯关闭

三、下面新建一个从站的程序,同样先把把配置配置好

先把 IP地址设置好,要和主站在同一个网段,点击"打开设置",选择Unpassive将plc指定为从站,端口号和主站指定的那个账号一样就好

四、下面可以编写从站的程序了

从站的程序主要分为3步:发送数据、读取数据、关闭通道。

1、数据发送:把数据987、654、321发送过去

2、数据接收:把数据接收到D5001、D5002、D5003 这3个寄存器里面

3、关闭通道

——END——

技成培训原创,作者:陈育鑫,未经授权不得转载,违者必究!

相关问答

socket编程到底是什么?

工作中经常用到工业机器人中的socket通信,所以就socket在工业机器人中的使用情况做一下解读。什么是socket?socket就是套接字,是和不同设备进行双向通行的虚...

三菱plc驱动怎么安装?

找到你的安装路径,如:GPPW/Easysocket/USBDrivers/,就能找到你要装的驱动了。1、三菱三菱集团(MitsubishiGroup)是由原先日本三菱财阀解体后的公司共同组成....

abb机器人与ABplc之间通讯设置?

1.可以通过适当的设置实现abb机器人与ABplc之间的通讯。2.通讯设置需要考虑以下几个方面:a.硬件连接:需要通过适当的接口将abb机器人和ABplc连接起来。...

做串口编程用什么语言和开发环境比较好?

对于工控软件开发,需要熟悉以下技能吧:1.一门编程语言,我采用的是C#。2.熟悉串口通信,tcpsocket通信。3.多线程或异步编程,并发的逻辑处理。4.本地文件保...

求个三菱系列PLC的USB驱动-ZOL问答

估计你编程软件版本低的缘故啊,安装新版编程软件即可有用(0)回复wyzabRS232是与PLC连接的RS422是触摸屏与电脑连接用的有用(0)回复x9874264三菱Q是模块...

用mpi/pi怎么链接plc和电脑?

现在PC上建立OPCserver,可以下载西门子公司SIMATICNETOPCserver,这时候可以用ETHERNET、PROFIBUS、MPI都可以和西门子PLC建立通讯关系。通讯成功...

三菱plc8.86自带的usb驱动怎么安装?

找到你的安装路径,如:GPPW/Easysocket/USBDrivers/,就能找到你要装的驱动了。找到你的安装路径,如:GPPW/Easysocket/USBDrivers/,就能找到你要装的驱...

如何把西门子S7-200PLC的数据远传到电脑上?

谢谢邀请。这个问题好专业,书生也不懂!找了点资料,看合用不。说是“远传”,那就是不能用绞线链接很远了啊?在很多工厂和现场,有时会有钢铁立柱等障碍物,...数...

netlink可靠吗?

是靠谱的。Netlink套接字可以使用标准的套接字APIs来创建。socket(),bind(),sendmsg(),recvmsg()和close()很容易地应用到netlinkso...

三菱q系列plc用usb线连接要不要装驱动-153****9918的回答...

三菱的也需要安装对应的驱动的,编程软件自带了的。USB的驱动文件第一次需要手动指定安装路径,文件在X:\MELSOFT\GXDeveloper\Easysocket\USBDrive...

 路虎历史  卓越网和亚马逊 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部