多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## P431智能网关与AMX-200 使用串口远程数据采集 艾莫迅PLC串口说明。 ![](http://qiniu.yuncon.net/b1aa64acbd176d59ba4504c9435b0ef4) ## 一、 硬件与准备 下面以P432为例,介绍使用485串口走Modbus RTU协议的远程采集操作步骤。 准备 * 创恒P431模块 一台 * AMX-200 一台 * Windows 10电脑 一台 * V4.0 STEP 7 MicroWIN SP9软件 * 串口线、电源 、网线等配件 ## 二、添加Modbus RTU功能块 打开 V4.0 STEP 7 MicroWIN SP9编程软件,在库文件中添加Modbus RTU功能块(MBUS_INIT 、 MBUS_SLAVE),输入相关参数(下图1),参数仅供参考。功能块说明见下表。 整个Modbus RTU功能块的添加流程图如下图2 ![](http://qiniu.yuncon.net/6f9525bda912ad70885eab5d9a18ca4e) ![](http://qiniu.yuncon.net/9a692e2137f65c9e5e670455074bc5b3) ## 三、云平台配置 **1、基本操作步骤:智能网关——设备管理——通道管理——添加通道——设备管理——添加设备——设置点表。** 2、**分解步骤:** 2.1 智能网关——设备管理(如图) ![](http://qiniu.yuncon.net/be73b330a749c82f780b2887176f5218) 2.2 通道管理——添加通道(如图),选择ModbusRTU协议,即网关为ModbusRTU主站。选择网关的串口号,配置串口通讯参数,包括:`波特率`、`数据位`、`校验位`、`停止位`。(通道串口参数必须与设备串口参数一致) ![](http://qiniu.yuncon.net/137b7c77fef4aca8f799e4df9748699d) 2.3 设备管理——添加设备(如图),选择通道,设置设备Modbus从机地址,从机地址必须与设备设置的 ID一致。 ![](http://qiniu.yuncon.net/4e2f342579cf33bf5f1c5ee46365cc7e) 2.4 设置点表(如图) ![](http://qiniu.yuncon.net/7054b1fc08dc25316a57f75b3b8145c8) ## 四、指令说明 MBUS_INIT指令 MBUS_INIT指令用于使能和初始化或禁止Modbus通讯。MBUS_INIT指令必须无错误的执行,然后才能够使用MBUS_SLAVE。在继续执行下一条指令前,MBUS_指令必须执行完并且Done位被立即置位。MBUS_INIT指令应该在每次通讯状态改变时只执行一次。因此,EN输入端应使用边沿检测元素以脉冲触发,或者只在第一个循环周期内执行一次。 | 参数地址 |说明| 类型 | 数值范围 | 备注| | ------------- | --------------- | -------------- | ----------- | ------------- | |Mode | 选择通讯协议:输入1值将Port定义为Modbus协议并使能该协议,输入0值将Port定义为PPI并禁止Modbus协议。 | 位 | | | | Addr | 设置本站地址 | 字节 | 1到247之间| | |Baud| 设置波特率 | 双字 | 1200、2400、4800、9600、19200、38400、57600、115200| | | Parity | 设置校验 | 字节 | 0---无校验1---奇校验2---偶校验 |所有设置使用一个停止位 | | Delay|通过为标准Modbus信息超时增加指定数量的毫秒,扩展标准Modbus信息结束超时条件 | 整形 | 0到32767| 单位:毫秒| | MaxIQ | 设置可使用的I和Q点数 | 整形 | 其数值可为0到128.数值为0则禁止对输入和输出的读写 | 建议MaxIQ的取值为128,即允许访问AMX--200的所有I点和Q点 | | MaxAI| 设置可使用的字输入寄存器(AI)的个数 | 整形 |0到32。值为0则禁止读模拟输入 | MaxAI的建议值如下:--CPU221 为 0 --CPU222 为 16--CPU224,CPU226和CPU224XP 为32 | | MaxHold | 设置可以使用的V存储区字保持寄存器的个数 |整形 | 0到32767 | 单位:字 | | HoldStart | 设置可以使用的V存储区的保存寄存器的起始地址 | 双字| 指向V存储区的指针 | | | Done |当MBUS_INIT指令完成时,Done输出接通| 位 | | | | Error |Error输出字节包含该指令的执行结果|字节 | | | MBUS_SLAVE指令 MBUS_SLAVE指令用于服务来自Modbus主站的请求,必须在每个循环周期都执行,以便检查和响应Modbus请求。当EN输入接通时,该指令在每一个循环周期内执行。 | 参数地址 |说明| 类型 | 数值范围 | 备注| | ------------- | --------------- | -------------- | ----------- | ------------- | | Done |当MBUS_SLAVE指令响应Modbus请求时Done输出接通。如果没有服务的请求,Done输出会断开| 位 | | | | Error |输出包含该指令的执行结果|字节 | 错误代码如下表 | 该输出只有Done接通时才有效。如果Done断开,错误代码不会改变 | Modbus RTU 从站执行错误代码 | 错误代码 |描述| | ------------- | ----------- | | 0 |无错误| | 1 |存储器范围错误| | 2 |波特率或奇偶校验非法| | 3 |从站地址非法| | 4 |Modbus参数值非法| | 5 |保持寄存器与Modbus从站符号重叠| | 6 |收到奇偶校验错误| | 7 |收到CRC错误| | 8 |功能请求非法/功能不受支持| | 9 |请求中的存储器地址非法| | 10 |从站功能未启用| | 11 |端口号无效| | 12 |信号版端口 1 缺失或未组态|