本文主要介绍第三方产品ILX34-MBS485模块在罗克韦尔C o n t r o l l o g ix系统中实现Modbus RTU协议的串行通信,以及ILX34-MBS485模块做主站和从站时的详细介绍。
场景:
在Controllogix系统中:
1,对下(做主站)需要采集2台小型PLC(Micro850)的数据以及发送命令到两台PLC,PLC通讯协议为Modbus RTU,波特率为9600,8个数据位,1个停止位,偶校验,PLC数据寄存器地址为40001-40002。
2,对上(做从站)需要读取上位系统命令以及发送数据到上位系统,从站PLC通讯协议为Modbus RTU,波特率为9600,8个数据位,1个停止位,无校验,PLC数据寄存器地址为40001-400010。
硬件:1769-L16ER-BB1B,1734-IB8(3个),1734-OB4,ILX34-MBS485(2个),1734-TOP(6个),2080-LC50-48QWBK,2085-ECR,485转USB串口调试工具,电脑一台,导线若干。
软件:1,Studio 5000 V32.02.00
2,Connected Components Workbench V20.01.00
3,ILX34-MBS36_Add On_Rung_v1_9.L5X(厂商提供的AOI例程),
4,调试工具ModScan32,ModSim32
ILX34-MBS485模块使用过程可分为3个步骤:
1,硬件组态
2,导入厂商提供的AOI
3,组态串口参数(从站)
4,调试工具测试(从站)
5,组态串口参数(主站)
6,调试工具测试(主站)
1,硬件组态
①在Studio 5000软件中新建1个工程,进行硬件组态。
(注:经实物测试ILX34-MBS485模块底座旋钮无需与实际卡槽对应,不影响使用。)
②增加ILX34-MBS485模块,即Other类型中的1734-Moudle。点击确定,弹出模块设置对话框,进行参数设置。
”连接参数”取决于你目前正在使用的应用程序,这个模块允许3种不同大小的数据块。
此次配置为36个字每条指令。“通讯格式”选择“数据-SINT”格式,“槽号”选择在机架中实际的插放位置。
“请求信息包间隔(RPI)”值建议大于50ms,后点击“应用”“确认”。
2,导入厂商AIO
①在“Main Routine”中添加梯级,右键梯级,导入梯级,导航到 .L5X 文件位置 。示例:ILX34-MBS36_Add On_Rung_v1_9.L5X(厂商提供的AOI例程)
厂商根据“Connection Parameters”中的3种数据长度,提供了3种相应的AOI。
选择在硬件组态中36字节长度的例程。
②导入配置
Tag中编辑(映射)3 个导入的AENT标签名称以反映 ILX34MBS 在
机架中的位置,确保输入正确的插槽编号。参考如上所示(6插槽)。
四个MBS后缀加“_1”为和第二个 ILX34MBS模块区分。
点击“其他区组件”最终名称选择当前模块组态“RTU1”名称。
3,组态串口参数(从站)
1,ILX34MBS模块做从站时,只需配置MBS_Config参数即可,无需配置读写指令参数即可。
2, 如上图配置从站参数为:
Type:1,代表此ILX34MBS模块做从站。
Slave_ID:1,代表此ILX34MBS模块做从站时地址为1。
Baud_Rate:4,代表波特率为9600。
Serial Comm:3,代表8N1,8个数据位,1个停止位,无校验。
Protocol:1,代表通讯为RTU。
其它参数保持默认即可。
3, 调试工具测试(从站)
(注:1769-L61供电时,VDC+,VDC-,为电源供电,FP+,FP-为端子供电,必须连接,否则将影响通讯。)
ILX34MBS模块做从站时,利用ModScan32软件做主站进行测试。
ModScan32软件设置如下所示:
1769-L16ER-BB1B发送到上位系统的数据存放地址为outputRsgister中。如下图所示:PLC发送数据128,128,10,105,105,1。ModScan32软件可以直接读到。需注意调试软件起始地址为40001,对应编程软件起始地址为0。
发送到“位”数据存放地址在outputBit中,调试软件应用01功能码监控。
1769-L16ER-BB1B读取上位系统的数据存放地址为InputRsgister中。如下图所示:利用调试软件发送数据521至40005,40006,40007中。在编程软件中可以直接读到。需注意调试软件起始地址为40001,对应编程软件起始地址为0。
读取到“位”数据存放地址在outputBit中。
4,组态串口参数(从站)
1,ILX34MBS模块做主站时,需先配置MBS_Config参数,再配置读写指令参数MBS_1.MASTERCMD,需要读写几次读写指令,就配置几条,最多配置30条读写指令。
MBS_Config配置主站参数如下图所示:
Type:0,代表此ILX34MBS模块做主站。
Slave_ID:0,ILX34MBS模块做主站时地址为0。
Baud_Rate:4,代表波特率为9600。
Serial Comm:5,代表8E1,8个数据位,1个停止位,偶校验。
Protocol:1,代表通讯为RTU。
其它参数保持默认即可。
MBS_1.MASTERCMD,配置参数如下图所示:
①对地址为1的小型PLC,用03功能码,从40001地址开始读取1个字,存放在起始地址为MBS_1.DATA.InputRegister[0]里面。
②对地址为1的小型PLC,用16功能码,把起始地址为MBS_1.DATA.OutputRegister[0],写入1个字,存放在起始地址为40002里面。
③对地址为2的小型PLC,用03功能码,从40001地址开始读取1个字,存放在起始地址为MBS_1.DATA.InputRegister[1]里面。
④对地址为2的小型PLC,用16功能码,把起始地址为MBS_1.DATA.OutputRegister[1],写入1个字,存放在起始地址为40002里面。
5,调试工具测试(从站)
(注:1769-L61供电时,VDC+,VDC-,为电源供电,FP+,FP-为端子供电,必须连接,否则将影响通讯。)
ILX34MBS模块做主站时,利用ModSim32软件做从站进行测试。
ModSim32软件设置如下所示:
1769-L16ER-BB1B做主站,读取到小型PLC1,地址为1,数据存放地址为InputRsgister中,发送到小型PLC数据存放地址为OutputRsgister中。如下图一所示:利用调试软件发送数据1到40001中,编程软件可以直接读到;如下图二所示:利用编程软件发送数据2到40002中,调试软件可以直接读到。需注意调试软件起始地址为40001,对应编程软件起始地址为0。
图一:
图二:
1769-L16ER-BB1B做主站,读取到小型PLC2,地址为2,数据存放地址为InputRsgister中,发送到小型PLC数据存放地址为OutputRsgister中。如下图一所示:利用调试软件发送数据3到40001中,编程软件可以直接读到;如下图二所示:利用编程软件发送数据4到40002中,调试软件可以直接读到。需注意调试软件起始地址为40001,对应编程软件起始地址为0。
图一:
图二:
以上就是本人分享的ILX34-MBS485模块做主站和从站时的详细介绍,不足之处请大家多多指教。