不用编程,实现ModbusTC方式与AB罗克韦尔的PLC标签方式通讯

时间:2024-05-20 17:47:23

        通过智能网关实现ModbusTCP协议方式,读写AB罗克韦尔Compact、Control系列PLC的标签,以下是配置步骤:

        首先,打开参数管理软件设置网络参数,包括PLC的IP地址、网关自身的IP地址等,具体参照这篇文章,然后配置Modbus地址与PLC标签的对应表,如下图:

不用编程,实现ModbusTC方式与AB罗克韦尔的PLC标签方式通讯

    根据上图中的配置,Modbus的5位地址寻址方式如下:
    DQ00000: TB[0],  DQ00001: TB[1],  DQ00002: TB[2]......
    HR10000: TINT[0],  HR10001: TINT[1],  HR10002: TINT[2]......
    HR11000: MainProgram.pgarr[0],  HR11001: MainProgram.pgarr[1],  HR11002: MainProgram.pgarr[2]......
    HR20000: TEST;
    HR21000: MainProgram.pgtest;
    
    Modbus的6位地址寻址方式如下:
    000001: TB[0],  000002: TB[1],  000003: TB[2]......
    410001: TINT[0],  410002: TINT[1],  410003: TINT[2]......
    411001: MainProgram.pgarr[0],  411002: MainProgram.pgarr[1],  411003: MainProgram.pgarr[2]......
    420001: TEST;
    421001: MainProgram.pgtest;
    
    具体可参照以下说明进行设置:
    Modbus地址区域:有4个选项可选择,每个区域可分配65535个通讯地址,设置范围1-65535,具体如下:
        1.DQ_输出信号(0x):上位机可以读写的BOOL信号区域,一般分配PLC的输出信号、中间继电器等需要读写的位变量;
        2.DI_输入信号(1x):上位机只读的BOOL信号区域,一般分配PLC的输入信号区域、中间继电器区域等只用读的位变量;
        3.IR_输入寄存器(3x):上位机只读的16位数据区域,一般分配PLC的特殊寄存器区域等只用读取的数据;
        4.HR_保持寄存器(4x):上位机可以读写的16位数据区域,可分配PLC的常规数据区域;
    读写方式与指令:上位机操作该区域可用的指令,该列数据会自动分配不用设置;
    Modbus起始地址:输入一个起始地址,范围1-65535,用该地址对应到后面的变量,或者数组的起始地址;
    PLC地址区域:选择PLC的数据区域,包括控制器变量、数组,程序变量、数组;
    DB/文件/标签:输入PLC的变量名,或者数组名,程序变量或数组要带上程序名;
    数据类型:PLC的变量或数组的数据类型,根据PLC内实际的类型选择;
    
    设置完成后,将参数下载到网关,重新启动网关后进行测试,通过参数软件的‘工具->数据读写测试’打开Modbus测试界面,下图测试的是控制器数组tarr1的批量读写:  

不用编程,实现ModbusTC方式与AB罗克韦尔的PLC标签方式通讯

上图中采用的是5位寻址方式,然后运行Modbus Poll软件,采用6位寻址方式,同样测试控制器数组tarr1,如下图:

不用编程,实现ModbusTC方式与AB罗克韦尔的PLC标签方式通讯

PLC内的tarr1数组的实际值:

不用编程,实现ModbusTC方式与AB罗克韦尔的PLC标签方式通讯

西门子、三菱、欧姆龙等PLC控制器都可以实现免编程的Modbus协议转换,相关软、硬件资料下载