西门子PLC1200--与电脑连接的TCP通讯

本例演示将PLC作为服务器,电脑作为客户端,进行通讯。
反过来也是一回事,就不啰嗦了。
二者进行TCP通讯,是基于网线的,电脑上用的是网口,PLC上用的是Profinet接口,即PN口。

软件工具准备

西门子PLC的开发环境是博途V18
TCP调试助手工具,其实任意一个调试助手都可以。

IP地址和端口的概念

IP地址就是你的电脑在网络上的地址,形象化的理解,就是你家住的小区的邮政地址,即XX省XX市XX区XX路XX号。通过IP地址可以找到具体的每一台电脑,但是不再继续精确了。
如果要找到具体你家怎么办呢,那就给小区的每户都分配一个编号,每个应用程序要使用网络的时候,就请求使用一个唯一的编号,这样就可以对应到每个具体的应用程序了。
但这个端口号,不是随便用的,有一些被用来实现系统的固定功能,比如HTTP通讯用到的8080端口,TELNET用到的23端口等,
西门子1200PLC的端口是2000到5000(如果记错了请告知)

通讯过程

这个过程就像我们平时上网一样,网站的服务器平时都处于等待状态,我们需要连接网站服务器时,就由我们的电脑主动发起连接,去进行通讯。所以一定是服务器Server端(S端)去侦听端口,客户端Client(C端)主动建立连接,建立完成后,客户端发送数据就可以被服务器端收到。

本例中PLC作为服务器,去侦听一个端口,端口号2000。
电脑作为主动发起通讯的客户端,来主动创建一个连接。

所以服务器端的IP地址是一定要知道的,本例中是192.168.2.222。
常规上网时,客户端的IP地址不重要,因为我们使用的是TCP/IP协议,在TCP/IP协议中就会将客户端的IP地址等一系列信息打包,在服务器端收到数据后会拆包,得到一些基础信息,以及我们发送的数据,在做数据返回时,就会知道数据到底发到哪里。

但在本例中,PLC不允许连接任意地址,只对特定IP地址的客户端进行连接,所以在PLC编程时,要将电脑的IP地址填入。电脑的IP地址可以通过下图查到:
在这里插入图片描述
在这里插入图片描述

端口号需要事先约定好,本例中是2000。

PLC端的编程

这部分很简单,用梯形图就可以了。
我们使用“开放式用户通信–其他”中的2个控件,
将TCON拖入程序段1
将TRCV拖入程序段2
接下来就是对2个控件进行设置

组态设备

本例使用1212DCDCDC,将其拖入组态界面
在这里插入图片描述
双击设备,在下方属性界面继续设置
1 添加新子网PN/IE_1
2 IP地址192.168.2.222,子网掩码255.255.255.0
在这里插入图片描述
3 开启系统存储位和时钟存储位
在这里插入图片描述
至此组态完成,开始编程。

TCON控件

先点击TCON控件的如下图标
在这里插入图片描述
在下面的属性设置窗口进行通讯连接设置:
1 连接参数中按下图进行设置
在这里插入图片描述
说明一下,192.168.2.222是本PLC地址,192.168.2.111是电脑地址
“连接数据”下拉,选择新建,连接ID为1
伙伴为未指定,并由伙伴进行主动连接,
说明本PLC是作为服务器等待连接,伙伴(即电脑)作为客户端主动发起连接。
2 REQ选择FirstScan,即上电就启动侦听,以等待连接

新建一个变量表

将需要的变量放在这里,本例中没有用到发送,所以无需发送结构体
在这里插入图片描述

TRCV控件

按下图设置好TRCV控件
在这里插入图片描述
注意ID要和TCON中的ID设置成一样

PLC下载并运行

启动在线调试模式,双击我的变量表,并开启监控数据
在这里插入图片描述
此时PLC作为服务器,设置并启动完成,正在等待客户端进行连接和通讯。

联机调试

电脑端设置IP地址为192.168.2.111
打开TCP调试助手
点击TCP Client
主机地址:192.168.2.222
主机端口:2000
点击连接网络
在这里插入图片描述
可以看到绿灯亮起,说明连接建立成功。

以文本方式发送数据

输入数据,并点击手动发送按钮
在这里插入图片描述
在PLC的数据监控页面,可以看到接收到的数据
在这里插入图片描述

以16进制方式发送数据

在这里插入图片描述
接收到的数据如下:
在这里插入图片描述

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
西门子PLC S7-200是一款常见的可编程逻辑控制器,而VB是一种常用的编程语言,通常用于开发应用程序。下面是一个基于VB的西门子PLC S7-200网口连接的例子: 首先,你需要在VB开发环境中打开一个新的项目。然后,从工具箱中拖拽一个按钮控件和一个文本框控件到窗体上。 接下来,我们需要将VB与西门子PLC进行通信。我们可以使用VB的Socket对象来实现。在按钮的点击事件中,添加以下代码: Dim client As New System.Net.Sockets.TcpClient '创建一个TCP客户端 client.Connect("192.168.0.1", 102) '连接PLCIP地址和端口号 Dim stream As NetworkStream = client.GetStream() '获取网络流 Dim plcData As Byte() = New Byte(0 To 51) {} '创建一个用于接收数据的字节数组 stream.Read(plcData, 0, plcData.Length) '从PLC中读取数据 Dim plcValue As String = Encoding.ASCII.GetString(plcData) '将字节数组转换成字符串 TextBox1.Text = plcValue '将数据显示在文本框中 stream.Close() '关闭网络流 client.Close() '关闭TCP连接 在上述代码中,我们首先创建一个TCP客户端,然后连接PLCIP地址和端口号。接下来,我们获取网络流,并创建一个字节数组来接收来自PLC的数据。然后,我们将字节数组转换成字符串,并将其显示在文本框中。最后,我们关闭网络流和TCP连接。 需要注意的是,你需要将IP地址和端口号替换为你实际连接PLCIP地址和端口号。 通过上述例子,你可以实现VB与西门子PLC S7-200的网口连接,并实现数据的读取和显示。当然,这只是一个简单的例子,你可以根据实际需求进行更复杂的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值