跳到主要内容

低代码控制系统连接Modbus-Slave(低代码为主站)

Modbus Slave:使用Modbus从站设备仿真器,可以仿真32个从设备/地址域。每个接口都提供了对EXCEL报表的OLE自动化支持。主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。 可以32个窗口中模拟多达32个Modbus子设备。与Modbus Poll的用户界面相同,支持功能01,02,03,04,05,06,15,16,22和23,监视串口数据。

低代码控制系统连接Modbus-Slave:控制器与Modbus-Slave之间通过以太网建立连接,使用Modbus-TCP协议与Modbus-Slave进行数据交换。

使用Modbus-TCP协议连接外部设备的使用流程如下图所示:

一、前置准备

在配置Modbus-Poll连接低代码控制系统之前,请先准备好以下内容:

  1. 已获得并部署Janus边缘计算系统并登录系统。

  2. 完成控制系统Modbus从站的通讯配置:在Janus边缘计算系统里的流程管理界面通过创建工程→点击详情→点击硬件配置→选择配置硬件添加通讯(配置Modbus主站从站配置、Modbus从站通讯配置)→通讯文件选择Modbus_Master.txt生成配置下发配置到控制系统

二、设置从站设备固定IP地址

在主站设备与从站设备建立通讯之前,需要给从站设备设置固定IP,使从站设备与主站设备处于同一网关下的局域网下才可以进行数据交换。

注意

从站设备一定要设置成固定IP,否则从站设备IP的变动会导致从站设备与主站设备通讯断开。

三、建立设备通讯连接

  1. 打开Modbus-Slave调试助手,点击Connection,设置Modbus-Slave充当服务器(从站)设备的通讯参数,只有将通讯参数设置正确,Modbus-Slave才能正确的跟低代码控制系统充当客户端(主站)设备进行通讯。

  2. 配置如下图1所示:

    • Connection:连接方式,选择Modbus-TCP/IP,
    • TCP/IP Server : 即设置服务器(从站)设备的固定IP地址,
    • Port :端口号,默认502
    • 勾选IPv4
图1 设置Modbus服务器(从站)设备通讯参数
图1 设置Modbus服务器(从站)设备通讯参数
提示

IP Address可以设置指定从站设备的IP地址或者勾选Any Address任何的从站设备IP地址。

四、关联Modbus寄存器与自动化系统变量

在Janus边缘计算系统上配置Modbus_Master配置文件参数,关联Modbus_Master寄存器和自动化系统变量。

进入Janus边缘系统系统,在流程管理中的流程列表里找到对应项目创建的项目工程→点击详情→点击硬件配置→选择配置硬件添加通讯→选择Modbus主站通讯配置,关联Modbus_Master寄存器和自动化系统变量如下图2所示:

图2 关联Modbus寄存器和自动化系统变量
图2 关联Modbus寄存器和自动化系统变量

该Modbus-Slave配置文件参数支持0X1X3X4X读写寄存器,即01H02H03H04H05H10H的指令。 0x:可读可写的线圈设备类型(类似于PLC的DO输出点)。读该设备类型的位状态时,功能码为01H,写位状态时功能码为05H。 1x:只读的触点设备类型(类似于PLC的DI输入点)。读位状态时的功能码为02H。 3x:只读的模拟量设备类型(类似于PLC的AI模拟量)。读其数据时的功能码为04H。 4x:可读可写的数据寄存器设备类型(类似于PLC的AO数据寄存器)。当读其数据时功能码是03H,当写入数据的时候功能码是10H

以图2为例——

  • Master顺序:1表示对应Ctrl_Link.txt文件内Master顺序(ModbusMaster_1)
  • 站号:1表示从站的站号;
  • 寄存器ID:1表示Modbus寄存器的起始ID;
  • 寄存器个数:1表示寄存器个数;[只有”bit”类型表示变量个数];
  • 低代码ID:1表示变量起始ID;
  • 数据类型:布尔/短整表示变量的数据类型:布尔/短整长整型浮点字符(注意:一个自动化变量包含8个字符,一个Modbus寄存器变量包含4个字符),“位状态”。(如果关联的寄存器类型是位寄存器,那么一个变量占用一个寄存器ID。如果关联的寄存器类型是字寄存器,那么16个连续的变量占用一个寄存器ID);
  • 读写类型:布尔写入(5)表示功能码,注意当读写类型为布尔写入(5)功能码时,寄存器个数只能为1。功能码包括:0x读取(布尔)(1)1x读取(布尔)(2)4x读取(3)3x读取(4),布尔写入(5),写入(16)
  • 共享变量:停用表示为普通变量,如果是启用表示为共享变量;
  • 使能ID:变量9000使能ID,该变量ID的变量值为1时发送该通讯包(注:无论读写,都需要配置使能变量);
  • 接收流水号:表示在指定变量内记录接收流水号,0表示没启用。“发送间隔时间”:表示发送间隔时间。0表示只使能一次发送一次,也可以设置成周期读取。
  • 心跳时间_ID:可以分配变量来记录数据是否通讯成功。
  • 备注:拍照表示该配置的说明,方便查看。

注意:长整型或浮点型变量要占用2个Modbus寄存器: 例如状态条码1两个数据包:

  • 第一个自动化系统变量ID为6022,对应的Modbus寄存器ID为6022
  • 第二个自动化系统变量ID为6023,对应的Modbus寄存器ID为6024
  • 因为自动化系统变量ID6022为长整型数据类型时,占用两个Modbus寄存器ID,即第二个自动化系统变量ID6023,对应的Modbus寄存器ID要从6024开始。
信息
  1. 低代码充当主站时配置Modbus_Master配置文件,寄存器个数一次性最多只能读取127个。
  2. 利用Janus边缘计算系统配置Modbus_Master主站通讯配置生成配置下发到控制器指定的路径前,需要在通讯文件选择里勾选Modbus_Master.txt配置文件再生成配置文件,否则生成配置文件时不会默认生成Modbus_Master.txt配置文件。
  3. Modbus主站通讯配置对应低代码控制系统的配置文件是Modbus_Master.txt,利用Janus边缘计算系统配置Modbus主站通讯配置生成配置下发到控制器指定的路径,如果是GUS系列的控制系统,则配置文件Modbus_Master.txt;在GUS系列嵌入式多轴运动控制器系统文件夹My Device/Hard Disk/EasyAutoSystem_CE\System\ParaFiles目录下可以找到,如果是GNC系列的控制系统,则配置文件Modbus_Master.txt在GNC系列嵌入式运动控制器系统的系统盘D:\Ftp\EasyAutoSystem\System\ParaFiles目录下可以找到。

五、Modbus配置

在Janus边缘计算系统上配置Modbus配置Modbus从站设备的IP地址TCP端口号、从站设备的数量以及本机的TCP端口号

首先登录Janus边缘系统系统,在流程管理中的流程列表里找到对应项目项目工程→点击详情→点击硬件配置→选择配置硬件添加通讯→选择选择Modbus主站从站配置(勾选启用Modbus主站配置配置Modbus主站配置文件),配置Modbus从站设备的IP地址TCP端口号、从站设备的数量以及本机的TCP端口号,如下图3所示:

图3 配置Modbus Ctrl_Link配置文件
图3 配置Modbus Ctrl_Link配置文件

根据从站设备的IP地址、端口号以及从站设备的数量,主要配置Modbus主站配置包括配置从站的个数、从站对应的IP地址、TCP端口号以及本机的TCP端口号。TCP端口号,ModbusTCP默认端口号为502。

当有多个从站设备时,每个从站设备对应的ModbusMaster_1和ModbusMaster_2配置本机的TCP端口号要不一致,需要连接的从站TCP端口号要一致,默认都是502。

如图2配置ModbusCtrl_Link配置文件所示,本例中的从站设备数量为1,本机TCP端口号为8000,需要连接的从站TCP端口号为502,从站设备的IP地址为192.168.33.162,其它的默认原本的配置即可。

信息
  1. 在配置Modbus主站配置的过程,可以选择配置栏位User_LogInfo指定变量内的值为1:记录Modbus通讯内容至ParaFiles文件夹Log_ModbusMaster.txt;变量内的值为2,则只记录写入指令;变量内的值为3,则只记录读取指令,主要是方便调试的时候使用。
  2. 利用Janus边缘计算系统配置Modbus主站通讯配置生成配置下发到控制器指定的路径前,不需要在通讯文件选择里勾选Ctrl_Link.txt配置文件再生成配置文件,生成配置文件时会默认生成Ctrl_Link.txt配置文件。
  3. Modbus主站从站配置(配置Modbus主站配置)对应低代码控制系统的配置文件是Ctrl_Link.txt,利用Janus边缘计算系统配置Modbus主站从站配置生成配置下发到控制器指定的路径,如果是GUS系列的控制系统,则配置文件Ctrl_Link.txt在GUS系列嵌入式多轴运动控制器系统文件夹My Device\Hard Disk\EasyAutoSystem_CE\System\ParaFiles目录下可以找到,如果是GNC系列的控制系统,则配置文件Ctrl_Link.txt在GNC系列嵌入式运动控制器系统的系统盘D:\Ftp\EasyAutoSystem\System\ParaFiles目录下可以找到。

六、低代码控制系统连接Modbus-Slave测试效果图

在设置完与客户端(主站)设备进行数据通讯参数之后,即可设置对客户端(主站)设备发送指令或者接收指令。如下图4所示,点击Setup,打开读/写定义对话框,设置对客户端(主站)设备发送指令或者接收指令参数。

  • Slave ID:与读取Modbus-TCP/TP通断设备的ID,范围为1~255,这里设置为1
  • Function:功能码选择,本文以03功能码读取4x(Modbus数据区)区为例;
  • Address:Modbus客户端(主站)设备的站号地址,设置为1
  • Quantity:数量设置为30(含义指的是3号功能码读取4区的地址,从1开始连续读取地址的数量为50个)。
图4 设置Setup相关读取参数
图4 设置Setup相关读取参数
信息

读取功能指的是读取功能返回的数据显示在网格窗口中,包含:

  • 1:读取线圈-位操作-单个或多个(0x);
  • 2:读取离散量输入-位操作-单个或多个(1x);
  • 3:读取保持寄存器-字操作-单个或多个(4x);
  • 4:读取输入寄存器-字操作-单个或多个(3x)。

写功能指的是写入功能写入显示在网格窗口上的数据,包含:

  • 5:写入线圈-位操作-单个(0x)(写入线圈状态);
  • 6:写入寄存器-单个(写入保持寄存器);
  • 15:写入线圈-多个(写入线圈);
  • 16:写入寄存器-字操作-多个(4x)(写入保持寄存器)。

在设置完对客户端(主站)设备发送或者接收指令之后,一旦客户端(主站)使能发送数据时,即可以在Modbus-Slave数据显示网格窗口中看到相关的测试数据效果图如下图5、6所示:

图5 Modbus-Slave显示读取设备对应变量ID数据
图5 Modbus-Slave显示读取设备对应变量ID数据
图6 自动化系统变量ID对应数值以及状态
图6 自动化系统变量ID对应数值以及状态

从下表可以看出,利用Modbus-Slave服务器(从站)读取GNC控制器客户端(主站)设备数据时,Modbus寄存器数值与自动化变量ID数值是一一对应,表明通讯成功。

自动化变量IDModbus寄存器自动化变量ID数值Modbus寄存器数值
急停1111
启动2211
复位3300
手动/自动4411
sima线-进板信号5500
sima线-出板信号6611
上料轴-上方对射光电7700
上料托盘推进到位8811
空盘轴-产品到位感应9900