# 7. 现场协议栈

# 7.1 Modbus TCP

# 7.1.1 Modbus TCP Master

  • 添加协议栈

    用户鼠标右键项目树中的“通讯协议栈”节点,在通讯协议栈列表中选择“Modbus TCP Master”,在弹窗中可修改协议栈的名称,点击“确认”按钮,即可在项目树“通讯协议栈”节点下查看到新添加的Modbus TCP Master协议子节点。

鼠标点击新添加的协议子节点,在页面右侧的协议配置界面中可以对“连接配置”、“数据操作”等进行配置。

  • 通讯参数配置

    Modbus TCP Master的通讯参数包括从设备的IP地址、端口号、连接超时时间、响应超时时间和任务间隔。其中“IP地址”为目标从站的IP地址,从站应与主站在同一网段中;“Server端口”为目标从站的Modbus TCP slave服务端口。

  • 数据操作配置

    在数据操作页面中可根据从站设备的具体情况配置“线圈”、“离散输入”、“保持寄存器”和“输入寄存器”。“起始地址”、“数量”和“IEC地址偏移”这三个参数填写完后,会在当前页面下方自动生成相应数目的点表,且每个点都有唯一的名称、IEC地址和数据类型,其中点的名称可以重命名,这些数据点都以全局变量的形式存在,可以在用户的POU程序中以外部变量的形式使用。

说明:

  1. “IEC地址偏移”用于自动生成点表的IEC地址,用户需要在配置前做好地址规划,确保地址不重叠;
  2. “起始地址”默认从0开始,一般不用修改;
  3. 切记“起始地址”与“数量”的和不应超过实际从设备线圈/寄存器的数量,即应为实际从设备线圈/寄存器的子集;例如某从站设备具有8个线圈、8个离散输入、4个保持寄存器和4个输入寄存器,则它们的起始地址和数量可分别设为:
类型 起始地址 数量 说明
线圈 0 8 0+8<=8
离散输入 0 4 0+4<=8
保持寄存器 0 2 0+2<=4
输入寄存器 0 2 0+2<=4
  • 在线变量实时值查看

协议栈配置好后,用户可在POU中使用协议栈自动生成的变量;编写好逻辑程序,经过“编译”、“连接”、“下载”、“运行”等步骤后可在协议栈界面观察到协议栈的运行状态,所有变量的实时值在“值”所在列显示。

  • 删除协议栈

在离线状态下,鼠标右键工程树中的Modbus TCP Master协议子节点,选择“删除”操作即可;注意,一旦执行删除协议,不可恢复。

# 7.1.2 Modbus TCP Slave

  • 添加协议栈

    用户鼠标右键项目树中的“通讯协议栈”节点,在通讯协议栈列表中选择“Modbus TCP Slave”,在弹窗中可修改协议栈的名称,点击“确认”按钮,即可在项目树“通讯协议栈”节点下查看到新添加的Modbus TCP Slave协议子节点。

鼠标点击新添加的协议子节点,在页面右侧的协议配置界面中可以对“连接配置”、“数据操作”等进行配置。

  • 通讯参数配置

    Modbus TCP Slave的通讯参数包括从设备的IP地址、端口号,其中“IP地址”为主机网络接口的IP,默认为0.0.0.0;“Server端口”处填写合适的端口号,范围:0~65535用户应避免使用系统服务公认端口号以防冲突,即避免使用0~1023之间的端口号。

  • 建立数据表

    数据表操作页面可建立4张点表,分别为“线圈”、“离散输入”、“保持寄存器”和“输入寄存器”,每张点表的起始地址最小从0开始,数量可更具用户的需求决定;

    “起始地址”和“数量”参数配置好后,在下方自动生成相应点数的点表,接下来用户可将应用程序中带地址的IEC变量与表中的点一一绑定;鼠标点击每一行的“名称”空白处,可选择工程中已有的IEC变量与该行绑定,可用的变量已根据数据类型过滤,数据类型不匹配或者不带IEC地址的变量都不会显示;未绑定变量的行所有数据默认为0。

    变量绑定完后,点击保存按钮或CTRL+S键保存。

    预删除已绑定的变量,鼠标点击变量“名称”后面的图标删除即可。

  • 状态查看

    配置好协议栈后,在POU中编写逻辑程序,经过“编译”、“下载”、“运行”步骤后可在协议栈界面观察到协议栈的运行状态,绿色图标表示正常状态,灰色则表示异常。

  • 删除协议栈

    在离线状态下,鼠标右键工程树中的Modbus TCP Slave协议子节点,选择“删除”操作即可;注意,一旦执行删除协议,不可恢复。

# 7.2 Modbus RTU

# 7.2.1 Modbus RTU Master

  • 添加协议栈

用户鼠标右键项目树中的“通讯协议栈”节点,在通讯协议栈列表中选择“Modbus RTU Master”,在弹窗中可修改协议栈的名称,点击“确认”按钮,即可在项目树“通讯协议栈”节点下查看到新添加的Modbus RTU Master协议子节点。

鼠标点击新添加的协议子节点,在页面右侧的协议配置界面中可以对“连接配置”、“数据操作”等进行配置。

  • 通讯参数配置

Modbus RTU Master的通讯参数包括从设备的COM端口名、波特率、奇偶校验位、数据位、停止位、响应时间、从设备ID和任务间隔。

常用的通讯参数配置:

  1. COM端口:ttyS0/ttyUSB0/… (需要与主站串口设备名称一致)
  2. 波特率:9600或115200 (应与待通信的从站设备ID一致)
  3. 奇偶校验:None (应与待通信的从站设备ID一致)
  4. 数据位:8 (应与待通信的从站设备ID一致)
  5. 停止位:1 (应与待通信的从站设备ID一致)
  6. 响应超时:1000ms
  7. 从设备ID:1~247 (应与待通信的从站设备ID一致)
  8. 任务间隔:一般不小于100ms
  • 数据操作配置

同Modbus TCP Master,可参考7.1.1章节。

  • 在线变量实时值查看

同Modbus TCP Master,可参考7.1.1章节。

  • 删除协议栈

同Modbus TCP Master,可参考7.1.1章节。

# 7.2.2 Modbus RTU Slave

  • 添加协议栈

用户鼠标右键项目树中的“通讯协议栈”节点,在通讯协议栈列表中选择“Modbus RTU Slave”,在弹窗中可修改协议栈的名称,点击“确认”按钮,即可在项目树“通讯协议栈”节点下查看到新添加的Modbus RTU Slave协议子节点。

鼠标点击新添加的协议子节点,在页面右侧的协议配置界面中可以对“连接配置”、“数据操作”等进行配置。

  • 通讯参数配置

Modbus RTU Slave的通讯参数包括主站设备的COM端口名、波特率、奇偶校验位、数据位、停止位、本机设备ID。

常用的通讯参数配置:

  1. COM端口:ttyS0/ttyUSB0/… (需要与主站串口设备名称一致)
  2. 波特率:9600或115200
  3. 奇偶校验:None
  4. 数据位:8
  5. 停止位:1
  6. 设备ID:1~247 (外部Modbus RTU Master主站可通过该ID寻址到当前主站)
  • 建立数据表

同Modbus TCP Slave,可参考7.1.2章节。

  • 解除绑定

同Modbus TCP Slave,可参考7.1.2章节。

*状态查看

同Modbus TCP Slave,可参考7.1.2章节。

  • 删除协议栈

同Modbus TCP Slave,可参考7.1.2章节。

# 7.3 EtherCAT Master

  • 添加协议总线

    鼠标右键左侧工程树中的通讯协议栈,在列表中选择“EtherCAT Master Bus”添加EtherCAT主站总线,并在弹框中输入总线名称(字符间不要有空格)后确认。

  • 扫描并添加从站

    EtherCAT主站总线添加完成后,点击该总线并在右侧配置页面中选择总线所用的网卡,即点击“网络配置”按钮,在设备网卡列表中选择目标网卡后确认。

    网卡选择完成后,在输入/输出区偏移量框中填入合适值(EtherCAT默认为1000);输入区偏移量对应从站的Tx-PDO逻辑点表位于IEC地址I区缓存的起始位置;输出区偏移量对应从站的Rx-PDO逻辑点表位于IEC地址Q区缓存的起始位置。

    点击“从站扫描”按钮即可将总线下所有从站扫描出来,并以列表的形式展示,点击从站设备列表弹框中的“应用”按钮即可将从站添加到工程中,并在工程树EtherCAT总线节点下以叶子节点的形式展示。

  • 编辑从站

    点击每个从站,在右侧从站信息页签中展示从站拥有的PDO点表,包含变量名、通道名、IEC地址、数据类型等,其中每个变量名都是唯一的,且用户可根据需要对变量重命名。

  • 编写应用程序使用从站变量

    在POU中的变量列表编辑区添加变量,变量的类别需为“外部”,点击变量“名称”区域可选择所需的变量(Tips: 输入变量名的关键字母可做筛选,提高效率);变量选好后就可以在下方的程序体编辑区中编写程序了。

    应用程序编辑完毕后,选择设备和应用,经过“编译”、“连接”、“下载”和“启动”步骤将程序下载到目标设备中运行。

  • 总线及从站状态展示

    程序启动后,在IDE中可展示变量的实时值,EtherCAT总线及各总站的状态也在左侧的工程树中显示,绿色图标表示通讯正常,红色图标则表示通讯异常。

    点击从站叶子节点,在右侧从站点表中也显示了各变量的实时值。

# 7.4 基于通讯协议关联IO变量

# 7.4.1 Modbus变量绑定

  • Modbus Master 变量绑定

Modbus Master 数据操作:

“起始地址”和“数量”参数配置好后,在下方自动生成相应点数的点表,接下来用户可将应用程序中带地址的IEC变量与表中的点一一绑定。此处的“名称“,可以根据用户需求进行自由变更。

Modbus Master变量绑定:

在编程定义变量时,选择“外部”变量类别,编辑便来给你名称。鼠标点击每一行的“名称”空白处,可选择工程中已有的IEC变量与该行绑定,可用的变量已根据数据类型过滤,数据类型不匹配或者不带IEC地址的变量都不会显示;未绑定变量的行所有数据默认为0。

绑定变量后,编程过程中可以藉由访问此变量来获取Modbus访问的IO资源。

  • 变量绑定

    首先在程序的变量定义区,正确定义“类别”、“地址”和名称。注意:地址需要符合IEC61131-3规范的语法,以及匹配需要绑定的变量类型。

Modbus Slave 数据操作时绑定变量:

用户在配置Modbus Slave 数据操作时,可以将slave中的变量映射到程序中“带地址“的变量中。如果类型匹配,且还没有被用作其它绑定,则用户可以对其进行绑定。

同理,用户也可以“透传“Modbus Master中的同类型变量。