[研华MAS控制器]扩展研华Modbus ADAM I/O模块

2025-10-23 20:35:16

1、MAS控制器与ADAM模块硬件联机

使用RJ-45网络线将MAS控制器与ADAM-6260连接。

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

2、确认ADAM模块联机状况

开启Adam/Apax .net utility软件,确认MAS控制器与ADAM模块联机成功,利用Adam/Apax .net utility测试模块使用状况并记录ADAM模块的IP位置, 在BASIC Modbus指令中我们需要用到。由下图可以看到

ADAM-6260 IP 地址 = "10.0.0.25"

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

3、使用Adam/Apax .net utility软件确认ADAM模块的Modbus address

ADAM-6260为6信道的Relay模块,信道1至信道6的Modbus address如下图所示。由下图可以看到

ADAM-6260 DO0的Modbus地址=0017

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

1、新建工程

新建一个Motion Studio工程,并新建一个Task程序“Master”

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

2、编写Modbus通讯程序

以MAS控制器作为Modbus Master,利用Motion Studio编写Modbus Master程序连接ADAM-6260(Slave), 并使DO0每秒做On/Off变化. 程序代码完成后f請点击编译。

在前面步驟, 我們知道 ADAM-6260 IP 地址 = "10.0.0.25"  , ADAM-6260 DO0的Modbus地址=0017   

MB_OPEN(0, 1, "10.0.0.25", 502, 1)             '开启Modbus通讯0

DIM AS ULONG modbusStutas = MB_STATUS(0)    '确认通讯0狀態(>0为正常)

PRINT modbusStutas

DIM as BOOLEAN Value = 1                   '宣告控制DO0之变量

DIM as BOOLEAN res = FALSE                '宣告执行结果之变量

WHILE(1)

    Value = not Value                                '每次进来循环时Value皆会改变

    PRINT "DO Value = ", Value                '打印目前DO0的开关状态

    res = MB_SETCOIL( 0, 0017, Value )    '寫入Modbus, 改变DO0状态

    PRINT "Result = ", res                         '打印执行MB_SETCOIL结果

    SLEEP 1000

WEND

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

3、执行程序

1.执行Master.bas程序,并开启输出窗口结果。

2.开启Adam/Apax .net utility至6260控制画面即可看到DO0变化。

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

[研华MAS控制器]扩展研华Modbus ADAM I/O模块

1、MB_OPEN (mbindex, connectmode, ip, port, deviceID) 

描 述:

打开一个modbus tcp或 modbus rtu 连接。相应通信端口或串口被打开后,才可以对该端口或串口进行操作。该指令需要根据本地资源进行操作。 

参 数:

mbindex:  设定一个modbus通信序号,0~4294967294 

Connectmode: 连接模式 ( 0:Modbus RTU,1:Modbus Tcp client)

ip: IP 地址 

port: 端口号 

deviceID: Device ID范围1~247 

例 程 

MB_OPEN(0, 1, "127.0.0.1", 505, 1)     '打开一个modbus tcp客户端连接, 

                                                            '对接IP为127.0.0.1的服务器 

2、MB_STATUS 

描 述:获取modbus连接状态 

参 数:mbindex 通讯编号。 

返回值:0:连接不成功;1:连接成功 

例 程 

MB_STATUS(0)            '获取编号为0的modbus连接状态 

3、MB_SETCOIL 

语 法1:设置单个线圈数值: 

VALUE = MB_SETCOIL( mbindex, m_start_address, value ) 

描 述:设置单个或多个线圈数值。 

参 数:

        mbindex:  通讯编号 

        m_start_address:  modbus相对起始地址(首地址为0) 

        value: 设定单个值 

返回值:TRUE—设置成功,FALSE—设置失败 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢