一、 Modbus**** TCP通信概述
Modbus TCP,顾名思义包含两个方面的意思Modbus和TCP。Modbus即传统的Modbus_RTU协议,TCP即TCP/IP协议中的TCP协议。Modbus/TCP 使Modbus_RTU协议运行于以太网,Modbus TCP使用TCP/IP和以太网在站点间传送Modbus报文,Modbus TCP结合了以太网物理网络和网络标准TCP/IP以及以Modbus作为应用协议标准的数据表示方法。Modbus TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,Modbus TCP插入一个标准的Modbus报文到TCP报文中,不再带有数据校验和地址。
优易通串口服务器UE-E3100全系列和4G DTU UE-D5401全系列都已经支持Modbus TCP功能。
二、 例程环境
三、 例程介绍
四、 配置过程
1.1 配置串口参数,串口参数要和传感器参数对应起来,流控选择485,在高级选项中,选中Modbus网关
1.2 SocketA配置,打开SocketA,协议选择TCP Server,服务器端口设置10001,后面组态王配置的时候会用到。
2.1 新建组态王工程
2.2 新建设备,依次点击1,2,3
选择PLC->莫迪康->ModbusTCP->TCP
设置设备的逻辑名字这里默认值
选择串口号
设置设备地址,192.168.1.189为前面设置的E3100的IP地址,10001为E3100设置的服务器端口,1为传感器地址。
通信参数选默认值
完成
变量1属性,选择变量类型IO 整数。寄存器401,代表功能码为03,起始地址0 的第一个值。
变量2属性,选择变量类型内存实数,用于传感器返回的数据换算
设置文本
设置动画连接
存储,切换到View
数据传输正常
1、协议不同。通讯管理机下行接口通讯协议有MODBUS-RTU、DL645、CDT91、DNP3.0、IEC 870-5-101、102、103、104、SPABUS,上行接口协议有IEC 870-5-104、MODBUS-TCP等。
串口服务器下行接口通讯协议有Modbus-RTU、Modbus-ASCII,上行接口通讯协议为Modbus-TCP。
通讯管理机上行采用的IEC 870-5-104协议,在遥信、遥测同时上传的情况下,具有遥信功能优先上传的优点,对保护动作信号和故障告警信号能迅速传达,Modbus-TCP不具有这种特点。
通讯管理机能够根据非标协议的特点,开发添加驱动程序,而串口服务器只能完成Modbus协议的透传,不支持扩展。
因此,通讯管理机的协议丰富,且通讯功能更好。
2、硬件配置不同
通讯管理机采用32位高速嵌入式CPU双核芯片,一个CPU核是装置的核心处理元件另一个CPM——通信专用的CPU,数据处理+通信处理双核心,解决网络数据瓶颈。厂家串口服务器普遍采用32位以下单核处理器。通讯管理机的CPU处理功能更强大,响应速度更快。
3、软件环境不同。
通讯管理机采用嵌入式实时操作系统VxWorks,提高对含有复杂代码程序的系统资源有效管理。
串口服务器软件程序简单,功能单一,不采用嵌入式操作系统。
4、可扩展性。
通讯管理机提供双机冗余,双以太网等多种级联工作方式。为系统的扩展组合提供了极大的方便性和灵活性,下行最多可提供16个串行接口。
ANet智能通信管理机系列是一款采用嵌入式硬件计算机平台,具有多个下行通信接口及一个或者多个上行网络接口,作为信息采集系统中采集终端与平台系统间的桥梁,能够根据不同的采集规约进行水表、气表、电表、微机保护等设备终端的数据采集汇总,并使用相应的规约转发现场设备的数据给平台系统。
ANet智能通信管理机支持接收上级主站系统下达的命令,并转发给目标区域内的智能系列单元,完成对厂站内各开关设备的分、合闸远方控制或装置的参数整定,实现遥控和遥调功能,以达到远动输出调度命令的目标。
ANet智能通信管理机作为自动化系统网络与监测设备之间的通信接口设备,提供规约转换、透明转发、数据加密压缩、数据转换、边缘计算等多项功能。
ANet智能通信管理机实时多任务并行处理数据采集和数据转发,并可多链路上送平台数据。通过专门的配置管理软件,可为通道选择各自不同的通信协议,并可通过更改配置文件来改变通信管理机所连接仪表设备的数量及数据信息,而不需更改软件程序。
串串口服务器模块的参数包括本地IP地址、工作模式、串口波特率等,具体可以参考串口服务器模块参数简介。3.串口服务器模块参数配置方法
卓岚串口服务器内嵌模块可以通过3种方式配置参数。分别是网页法、windows工具法、串口类AT命令法。这里是指用户使用卓岚的现有的工具来配置参数。关于开发用户自己的模块搜索、参数配置工具请看下一章节。
3.1 网页法
串口服务器核心模块内部运行了一个小型的Web服务器可以用于参数的配置,使用过路由器配置的用户对此方法一定不陌生。首先在浏览器的地址栏中输入串口服务器模块的当前IP地址,默认出厂IP为192.168.1.200。此时打开的页面即是串口服务器模块上的登录页面,输入登录密码(默认为123456)点击Login,进入参数配置页面。如图所示。修改相应参数后点击“Sbumit”按钮即可提交参数。
网页法配置参数的优点是:简单易用,无需安装任何配置工具,使用浏览器即可进行配置。缺点是:串口服务器模块的IP地址必须是和本机计算机处于同一个网段,否则无法访问网页。另外某些高级参数需要通过windows工具法进行配置。
3.2 Windows工具法
Windows工具法是推荐的参数配置方法。即在用户Windows计算机上运行卓岚ZLVircom软件或ZLDevManager,只要点击搜索即可搜索局域网内的所有串口服务器模块。其中ZLDevManager是一个简易工具,直接拷贝无需安装。对搜索列表中的模块选中后,点击“设备编辑”按钮或者双击列表中此行,即可弹出参数配置对话框,修改相应参数后点击“修改参数”按钮即可。如图所示。
windows工具法配置参数的优点是:1. 不要求串口服务器模块和计算机在同一个网段。2. 一次搜索多个模块,通过名字管理,无需记忆IP地址。3.可以配置高级参数。
windows工具法配置参数实际上是通过“卓岚管理端口协议”进行设备的搜索和参数配置。有两种方法可以将该设备搜索和参数修改功能直接集成到用户软件里:卓岚设备管理函数库DLL、卓岚管理端口协议。前者是一个可供用户调用的DLL库,后者是将管理端口协议的详细内容告诉用户,并由用户自己实现。该项内容属于增值服务。
3.3 串口类AT命令法
以上两种方法都是通过串口服务器模块的网口来配置参数。在某些时候,用户不仅需要通过网口来配置而且希望本地配置,即无需通过另外一台计算机来配置,而是直接通过设备本身来配置自己的参数。例如对于需要现场配置IP地址、现场配置目的IP地址的情况。卓岚的串口类AT命令法很好地满足了该要求。当用户MCU和串口服务器模块通过TTL(UART)串口连接后,用户MCU可以随时发送串口命令来配置参数。该命令类似AT指令,具体的指令格式请参考卓岚相关文档。
卓岚串口类AT命令能够实现的功能,包括但是不限于:
1.读取ZLSN2002/ZLSN2000的当前TCP连接状态,这样就知道模块是否和远端计算机建立了TCP连接。
2.随意控制ZLSN2002模块向任意的目的IP发起TCP连接,在多个目标之间随意切换,在多种工作模式中随意切换。
3.读取串口服务器模块的本地IP。如果是通过DHCP获得IP也能够读取。
4.重新启动串口服务器模块。
使用卓岚串口类AT命令可以完全控制串口服务器模块的TCP运行状态,也就是可以通过AT命令实现socket的connet、listen、send、recv等的函数调用。可以把ZLSN2002看成是“硬件TCP/IP协议栈”,因为ZLSN2002内部完全集成了socket函数的全部功能,而且可以通过串口AT命令的方式进行调用,相对于软件的socket接口来说,“硬件TCP/IP协议栈”不需要用户MCU运行协议栈、也可以保证协议栈的稳定性。卓岚提供有通过串口类AT命令实现让ZLSN串口服务器模块连接、监听、发送、接收的源代码,可方便用户参考。
4.参数配置方法的二次开发
如果用户需要将参数配置、设备搜索集成到到用户自己的软件中可以采用卓岚提供的设备管理函数库、管理端口协议方法。有的时候用户可能需要将IP的配置、波特率的配置集成到用户的管理软件中,而不是用卓岚的zlvircom进行配置,这增加了软件的统一性。以下就介绍这种方法。
4.1 设备管理函数
ZLAN可以提供一个供用户二次开发的动态连接库(DLL),这个动态连接库提供了简单的类似SearchDev()、 GetDevParam()、 SetDevParam()等函数来实现设备的搜索、参数获取、参数设置。使用起来非常方便,并提供有调用此DLL的C代码例子程序。这个函数库目前已经可以下载使用,参考《二次开发函数库的使用》。
4.2 管理端口协议
有的时候用户可能不想让自己的程序带有DLL库,此时更加灵活的控制方法是向ZLAN获取“管理端口协议”,这个协议是卓岚用户搜索模块、获取模块参数、设置模块参数的协议。用户完全可以在读懂协议的基础上自己实现这个协议。
设备管理函数库、ZLDevManage、ZLVircom的设备管理功能也是基于这个协议实现的。用户可以在读懂这个协议的基础上将ZLDevManage、ZLVircom的设备管理功能集成到用户自己的软件中。“管理端口协议”通过网口来配置模块,至少可以实现:
1.设备的搜索:搜索局域网、外网的所有的卓岚串口服务器模块。
2.读取设备参数:读取不同的设备的参数、设备ID、设备运行状态等。
3.重启指定的串口服务器模块。
4.修改指定的串口服务器模块的任何一个参数。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)