一、系统概述
MR30分布式IO是一个高度灵活的可扩展分布式 I/O 系统,MR30-FBC-MT用于通过 Modbus TCP 总线将过程信号连接到上一级控制器。
具有以下特点:
-
结构紧凑
-
PUSH IN端子,易于安装,布线简单
-
灵活性高:开关量模块单模块最大32通道,模拟量模块最大16通道,每个耦合器最大可扩展31个模块
-
可适配施耐德、贝加莱及西门子等厂家PLC使用
-
通信标准为 Modbus TCP
-
可扩展设计:允许用户根据当地的需求调整具体的组态
-
支持自由热插拔
二、实验材料
序号 | 名称 | 订货号 | 数量 | 品牌 |
1 | 耦合器 | MR30-FBC-MT | 1 | 明达 |
2 | 开关量输入模块 | MR30-16DI | 1 | 明达 |
3 | 开关量输出模块 | MR30-16DO | 1 | 明达 |
4 | 模拟量输入模块 | MR30-08AI-I4W | 1 | 明达 |
5 | 模拟量输出模块 | MR30-08AI-U | 1 | 明达 |
6 | M241 | TM241CEC24T | 1 | 施耐德 |
7 | 开关电源 | NDR-120-24 | 1 | 明纬 |
8 | 组态软件 | Machine Expert V2.0 | 1 | 施耐德 |
9 | GSD文件 | GSDML-V2.42-MICT-PN-20240620 | 1 | 明达 |
硬件接线
三、组态过程
-
组态步骤:
-
安装MR30-FBC-MT及分布式IO模块
-
连接MT241和MR30-FBC-PN
-
接通控制电源,使用IO配置软件装IO配置下载至耦合器
-
在Machine Expert V2.0中通过指令块读写IO模块并
-
将组态下载到控制器,控制IO状态并检查LED指示灯
-
观察IO指示灯及模拟量输入输出值是否与实际操作一致
2.新建项目,此示例命名为MT_TEST,点击确定。
3.右键MT_TEST,选择新建耦合器,选择MR30-FBC-MT(MODBUS/TCP)后,点击确定。
-
添加模块
右键耦合器,选择模块管理,依次将MR30-16DI、MR30-16DO、MR30-08A1-14W、MR30-08AO-I添加至右侧已选模块后点击确定,如下图所示。
-
配置下载
在参数配置面设置好IP地址、子网掩码和网关后,点击下载,如下图所示。
-
Machine Expert新建项目
打开Machine Expert V2.0,新建项目,点击空项目,设置项目名称后点击确定,如下图所示。
-
添加CPU
点Untited1,点击设备树,在Logic Controller→M241→TM241CEC24T/U目录下选择CPU后,点击添加设备并关闭对应框。
-
设置CPU IP地址
双击设备树中的Ethernet_1(Ethernet Network),在右侧配置的参数中设置IP地址,子网掩码及网关地址等参数,如下图所示。
-
在编程界面调用ADDM、READ_VAR和WRITE_VAR功能块
在程序段中插入ADDM、READ_VAR和WRITE_VAR功能块
-
添加地址转换功能块
ADDM_0释义:
ADD_0为Modbus TCP服务器转换后的地址;
Execute_ADDM为触摸位;
'3{192.168.1.30}'中的3为端口号,192.168.1.30为Modbus TCP服务器IP地址
-
添加读取开关量输入功能块
READ_VAR_0释义:
ADDM_0.Done:为ADDM功能块激活完成信号,用于触发READ_VAR功能块;
READ_VAR_2.Done和READ_VAR_2.Error:为READ_VAR功能块的完成和错误信号,用于触发本功能块,并与其它功能块形成轮循;
Addr:为ADDM功能块转换后的IP地址;
objType:为功能码,1表示开关量输入信号;
FirstObj:表示要读取的开关量输入的第1个地址;
Quantity:表示要读取的开关量输入的数量;
Buffer:表示客户机的缓存地址,数量类型为Word型数组;
-
添加读取开关量输出功能块
READ_VAR_1释义:
READ_VAR_0.Done和READ_VAR_0.Error:为READ_VAR功能块的完成和错误信号,用于触发本功能块,并与其它功能块形成轮循;
Addr:为ADDM功能块转换后的IP地址;
objType:为功能码,2表示开关量输出信号;
FirstObj:表示要读取的开关量输出的第1个地址;
Quantity:表示要读取的开关量输出的数量;
Buffer:表示客户机的缓存地址,数量类型为Word型数组;
-
添加写入开关量输出功能块
RITE_VAR_1释义:
READ_VAR_1.Done和READ_VAR_1.Error:为READ_VAR功能块的完成和错误信号,用于触发本功能块,并与其它功能块形成轮循;
Addr:为ADDM功能块转换后的IP地址;
objType:为功能码,2表示开关量输出信号;
FirstObj:表示要写入的开关量输出的第1个地址;
Quantity:表示要写入的开关量输出的数量;
Buffer:表示客户机的缓存地址,数量类型为Word型数组;
-
添加写入模拟量输出功能块
WITE_VAR_2释义:
WRITE_VAR_1.Done和WRITE _VAR_1.Error:为WRITE_VAR功能块的完成和错误信号,用于触发本功能块,并与其它功能块形成轮循;
Addr:为ADDM功能块转换后的IP地址;
objType:为功能码,0表示模拟量输出信号;
FirstObj:表示要写入的模拟量输出的第1个地址;
Quantity:表示要写入的模拟量输出的数量;
Buffer:表示客户机的缓存地址,数量类型为Word型数组;
-
添加读取模拟量输入功能块
READ_VAR_2释义:
WRITE_VAR_2.Done和WRITE _VAR_2.Error:为WRITE_VAR功能块的完成和错误信号,用于触发本功能块,并与其它功能块形成轮循;
Addr:为ADDM功能块转换后的IP地址;
objType:为功能码,0表示模拟量输入信号;
FirstObj:表示要读取的模拟量输入的第1个地址;
Quantity:表示要读取的模拟量输入的数量;
Buffer:表示客户机的缓存地址,数量类型为Word型数组;
四、组态测试
搜索CPU
切换至设备树,双击CPU,点击更新,可搜索到已连接的CPU如下图所示
登录CPU
点击菜单栏中的在线,在下拉菜单中点击登录到
建立监控表
点击菜单栏中的视图→监视→监视1,将触发变量及需要监控的变量添加进监控表,如下图所示。
启动并监控程序
将Execute_ADDM赋值为1,启动Modbus TCP通过程序块读写主站功能,观察READ_VAR_0.Done、READ_VAR_1.Done、READ_VAR_2.Done、WRITE_VAR_1.Done、WRITE_VAR_2.Done是否循环为1,如果循环为1,表明轮循成功。
通过控制开关量输出模块的通道,设定模拟量输出模块的通道,观察对应的开关量输入通道及模拟量输入通道的值是否与输出一致即可判断测试是否正常。
通过观察上图表明,模块测试正常。