课程中心
HOME
课程中心
正文内容
plc socket TCP编程 三菱IQ-F系列PLC套接字(Socket)通讯参数设置和程序编写
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

三菱IQ-F系列PLC套接字(Socket)通讯参数设置和程序编写

三菱FX5U可编程控制器

Socket TCP通讯

目录

一、Socket通讯概念

二、建立连接3次握手和断开连接4次挥手

三、Active开放的通讯

四、Active通讯程序

五、Passive开放的通讯

六、Passive通讯程序

一、Socket通讯概念

1)网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个Socket

2)Socket通讯协议分为TCP和UDP

3)Socket通讯英文名"插座",工作在网络层和传输层之间的特殊层

二、建立连接3次握手和断开连接4次挥手

1)Socket通讯协议TCP连接需要3次握手

2)Socket通讯协议TCP断开连接需要4次挥手

三、Active开放的通信

1)Active开放的通信流程图

2)参数设置:

2.1)参数 模块参数→以太网端口→基本设置→对象连接设备→ACTIVE

2.2)可编程控制器端口号:(1~5549、5569~65534)

2.3)传感器设备:IP地址(设置范围:0.0.0.1~223.255.255.254)和端口号(设置范围:1~65534)

四、Active通讯程序

五、Passive开放的通讯

1)Passive开放的通信流程图

2)参数设置

六、Passive通讯程序

基于西门子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资料

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

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

操作指引如下!

相关问答

PLC的socket与tcp区别?

socket通信和tcp通信的区别:1、tcp协议属于传输层协议,而socket是应用层和传输层之间的一个抽象层;2、建立一个TCP连接需要三次握手,socket下需要;3、soc...

socket编程到底是什么?

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

pythonsocket编程详解?

Pythonsocket编程是一种网络编程方式,通过创建socket实现进程间的数据交互。socket可以实现不同机器上程序之间的通信。常用的socket类型有TCP和UDP,通过IP地...

linux系统ubuntu,用c语言编程,利用进程和通信相?

IPC的方式有很多种,但是我觉得这个问题最简单的方式是采用LocalSocket,程序一作为server创建一个本地socket,程序二作为客户端,跟普通tcpsocket编程差不多...

socket走的什么协议?

socket走的TCP/IP协议。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议...

modbustcp与socket区别?

modbustcpModbus由MODICON公司于1979年开发,是一种工业现场总线协议标准。1996年施耐德公司推出基于以太网TCP/IP的Modbus协议:ModbusTCP。Modbus协...

怎么用C#用C建立客户端Socket?

TcpListener进行监听就可以了。usingSystem;usingSystem.IO;usingSystem.Net;usingSystem.Net.Sockets;usin...

TCP文件传输,怎样让接收和发送在一个面板上?

主要是你通过socketapi封装要发送的数据,内部会自动封装成数据流进行传输。1,什么是Socket网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向...

小型的游戏服务器TCP网络编程的具体思路是什么?

首先你要明白tcp服务器的几大要素:监听IOwork;而简单的服务器要做的就是如何收消息处理消息再把处理后的消息发出而tcp是无边界可靠传输协议所以需要自...

一个程序可以启动多个tcpsocket吗?

这个由操作系统决定,win32下可以启动int32个。这个由操作系统决定,win32下可以启动int32个。

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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