第一范文网 - 专业文章范例文档资料分享平台

使用CODESYS 语言编程实现MODBUS TCP SERVER功能 - 改(4)

来源:用户分享 时间:2025/5/19 20:56:31 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Codesys 语言编程实现Modbus Tcp Server

CoDeSys programming language to achieve the Modbus Tcp Server 蒋勇飞

( 施耐德电气 上海 200072 ) 中文摘要:

PLC_OPEN 是工业自动化编程领域的一个标准, Codesys是德国3S 公司开发的软件系统平台,它是完整支持PLC_OPEN标准的软件系统平台(即IEC61131-3标准)。支持标准IL 、ST、 FBD 、LD、 CFC、 SFC 六种PLC编程语言,用户可以在同一项目中选择不同的语言编辑子程序,功能模块等。

目前许多公司的自动化控制器都是基于这个平台开发的,例如施耐德,倍福,ABB,易福门,派芬,和利时等。 使用Codesys编程实现Modbus Tcp Server的功能,方便了客户使用带以太网接口的控制器和HMI或PC的通讯。降低了客户的成本,增强了系统使用的灵活性。

中文关键字:以太网接口,通讯协议,人机界面,Modbus Tcp服务器,Codesys

Abstract:

PLC_OPEN a standard in the field of industrial automation programming Codesys Germany 3S has developed software platform, which is the the complete support PLC_OPEN standard software platform (ie, IEC61131-3 standard). Supports standard IL, ST, FBD, LD, CFC, the SFC six PLC programming languages, user can the same project, choose a different language editing subroutine, function module.

Many automation controller are developed based on this platform, such as Schneider, Beckhoff, ABB, Ifm, Fin, and Hollysys.

To use Codesys programming Modbus Tcp Server, and convenient for customers to use the communication controller and HMI or PC with an Ethernet interface. Reduced our costs, enhance the flexibility of the system. Keywords: Ethernet port, Communication protocol, HMI, Modbus Tcp Server, Codesys

引言

Modbus Tcp 应用层协议及数据帧介绍

Modbus-TCP已成为当今开放的互联网标准之一,并为互联网标准的组织IETF(互联网工程任务委员会)认可。由于Modbus协议部分未经改动,众所周知的Modbus服务和对象模式依然有效,只是将它的作为传输层协议移植到TCP/IP上。

Modbus Tcp应用层的协议是独立于通讯媒介,根据客户/服务器原理组织的。客户发送请求帧来请求服务,服务器回应响应帧。请求帧和响应帧包含了参数和/或数据。在图 1中显示了标准Modbus Tcp帧格式。标准的Modbus通讯中从站地址和CRC校验的处理优先于功能码,但在Modbus Tcp中地址和校验由底层的Tcp协议完成。 Modbus Tcp和Modbus_RTU 在数据报文的结构上存在的差异是报文帧头由MBAP 替换了Slave ID。

MBAP由7个字节组成,并且出现在每个Modbus Tcp 信息帧的头部,这7个字节分别由Transaction Identifier(2个字节,传输标志),Protocol Identifier(2个字节,协议标志),Length(2个字节),Unit Identifier(一个字节,设备站号)。

图 1: 使用Modbus-TCP,命令和用户数据可不经任何修改而封装在TCP/IP的数据容器中

图 2: Modbus-TCP ADU在经过以太网TCP/IP协议封装之后的结构

1. 实现MODBUS_TCP SERVER 的硬件及软件配置

1.1该项目选择LTI 公司的MOTION ONE PAC控制器(型号:LACP242,INTEL_ATOM CPU ,1.1GHZ) 硬件资源:ETHERNET 10/100M 接口,软件CODESYS2.3 软件平台(图3)

图3.Codesys2.3软件配置平台

1.2 选择3S公司CODESYS2.3软件平台内的TCP/IP通讯库函数SyslibSockets.lib ,同时主要使用到的功能函数如下: ●SysSockInetAddr(ip):绑定指定的以太网接口的IP地址,控制器本体上的以太网端口的IP 地址 ●SysSockHtons(port):绑定以太网端口,MODBUS_TCP 通常使用502端口 ●SysSockCreate(SOCKET_AF_INET,SOCKET_STREAM,0):Tcp/IP Socket的创建 ●SysSockBind(socketId, ADR(), SIZEOF()):Tcp/IP Socket绑定指定端口和IP 地址 ●SysSockListen(socketId, 255):Tcp/IP Socket进行端口监听

●SysSockSelect(SOCKET_FD_SETSIZE, ADR(), 0, 0, ADR()):TCP/IP client的选择 ●SysSockAccept(socketId, ADR(), ADR()):TCP/IP Socket 接受client 设备的链接

●SysSockRecv(SocketHandle,ADR(),SIZEOF(),1):TCP/IP Socket 接收client 设备的数据包 ●SysSockSend(SocketHandle,ADR(),(),1):TCP/IP Socket 返回数据包,发送至Client设备 ●SysSockClose(socketId): 关闭TCP/IP Socket。 1.3 MODBUS_TCP server的创建过程

创建MODBUS_TCP server的过程主要分为以下几个步骤: 1.3.1 TCP/IP Socket库文件的安装

在CODESYS2.3软件平台的library manager 栏目下添加SyslibSockets.lib。之后则可以正常调用以太网通讯函数。

1.3.2 申明各种通讯参数变量及数据结构,例如MODBUS_TCP SERVER IP地址及端口,收发数据的数组: Var_Global

addressPointer:POINTER TO SOCKADDRESS; address:SOCKADDRESS;

ip:STRING:='192.168.39.100'; (*控制器本体 IP 地址*)

……

port: WORD:=502; (*MODBUS-TCP 端口*) objectArray:ARRAY[0..6] OF REAL;

tcp_connect_state:BOOL;(*TCP/IP连接状态字*)

protocol_id:INT; (*协议标志ID,modbus id=00 00*) device_id:INT; (*设备站号ID*)

END_VAR

1.3.3 MODBUS_TCP SERVER 主程序说明。

主程序结构框图及部分程序如下:

搜索更多关于: 使用CODESYS 语言编程实现MODBUS TCP SER 的文档
使用CODESYS 语言编程实现MODBUS TCP SERVER功能 - 改(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9dvqj3tvir1emx12t1j6_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top