产品简介 | 快速开始 | 通讯设置 | 内部寄存器 |
将MODBUS RTU协议转换为MODBUS TCP | 将任意协议转换为MODBUS TCP | CAN通信 | 自由口编程范例 |
4.内部寄存器
4.1 保持寄存器定义
Modbus地址 | TG900P地址 | 内容 | 说明 |
40001-2 | 未用 | 默认0x55aa | 请勿修改! |
40003 | 未用 | 版本号 | |
40004-10 | 未用 | 实时时钟 | 年月日时分秒星期 |
40011-42 共32个连续的16位数据64BYTE映射到%IB192~%IB255 | |||
40011-25 | %IW192-220 | 保留 | |
40026 | %IW222 | 运行/停止 状态 | =1运行/=2停止 |
40027 | %IW224 | 串口1 MODBUS从站地址 | 默认为1 |
40028 | %IW226 | 串口2 MODBUS从站地址 | 默认为1 |
40029 | %IW228 | 串口3 MODBUS从站地址 | 默认为1 |
40030-42 | %IW230-254 | 保留(13个) | |
40043-74 共32个连续的16位数据64BYTE映射到%QB64~%QB127 | |||
40043-74 | %QW64-66-126 | 保留(32个) | |
40075-80 | 未用 | 保留(6个) | |
40081~84 | 未用 | IP地址(4个) | 默认192.168.1.99 |
40085~88 | 未用 | 子网掩码(4个) | 默认255.255.255.0 |
40089~92 | 未用 | 广播地址(4个) | 默认192.168.1.255 |
40093~96 | 未用 | 网关地址(4个) | 默认192.168.1.254 |
40097~99 | 未用 | 保留 | |
40100 | 未用 | 串口RS485收发延时修正值 | 默认=8 |
40101 | 未用 | 保留 | |
40102-104 | 未用 | 串口1/2/3波特率设置 | 见波特率设置表 默认0xD007 |
40105-9999 | 未用 | 保留 |
4.2 中间变量区
TG900P用于存储数据的中间变量区如下所示。
TG900P地址 | Modbus地址 | 内容 |
%MW3.0-%MW3.65534 | 410001-442768 | 中间变量区,不可掉电存储 |
%MB3.100000-%MB3.101947 | 460001-460975 | 中间变量区,可掉电存储 |
4.3 中间变量与MODBUS地址的对应
中间变量区,可以定义BOOL、BYTE、WORD和DWORD型变量,也可以定义为SINT、INT、DINT、REAL等类型,不可掉电保存的中间变量区地址可以从%MB3.0~%MB3.65534。
在中间变量区,基本的TG900P地址空间是按字节定义的,即一个BYTE型变量占据一个地址:而一个BOOL型变量占据的是所在字节地址的某一位(如%MX3.00000.0),一个WORD型变量占据两个字节但其地址是低字节的TG900P地址(如%MW3.00000),一个DWORD型变量占据4个字节但其地址是最低字节的TG900P地址(如%MD3.00000)。
如果要定义一个SINT(BYTE)、INT(WORD)、DINT(DWORD)型变量,则它们对应的地址分别是字节型(%MB)、字(%MW)和双字(%MD),如果要定一个REAL型变量,则对应的地址是双字(%MD)。
Modbus地址空间是按字定义的,Modbus地址与TG900P的字地址一一对应(如410001对应%MW3.00000),同时一个Modbus地址又能对应这个TG900P字地址的高字节和低字节(如410001的高8位对应着%MB3.00001,而低8位对应着%MB3.00000),又能对应这个TG900P地址的第0~15位(如410001的16位分别对应着%MX3.00000.0~%MX3.00000.15)。
不可掉电保存的中间变量区寄存器地址如下:
TG900P地址 | 对应 Modbus地址 |
|||
位 | 字节 | 字 | 双字 | |
%MX3.00000.0 | %MB3.00000 | %MW3.00000 | %MD3.00000 | 410001 |
%MX3.00001.0 | %MB3.00001 | |||
%MX3.00002.0 | %MB3.00002 | %MW3.00002 | 410002 | |
%MX3.00003.0 | %MB3.00003 | |||
%MX3.00004.0 | %MB3.00004 | %MW3.00004 | %MD3.00004 | 410003 |
%MX3.00005.0 | %MB3.00005 | |||
%MX3.00006.0 | %MB3.00006 | %MW3.00006 | 410004 | |
%MX3.00007.0 | %MB3.00007 | |||
%MX3.00008.0 | %MB3.00008 | %MW3.00008 | %MD3.00008 | 410005 |
%MX3.00009.0 | %MB3.00009 | |||
%MX3.00010.0 | %MB3.00010 | %MW3.00010 | 410006 | |
%MX3.00011.0 | %MB3.00011 | |||
%MX3.00012.0 | %MB3.00012 | %MW3.00012 | %MD3.00012 | 410007 |
%MX3.00013.0 | %MB3.00013 | |||
%MX3.00014.0 | %MB3.00014 | %MW3.00014 | 410008 | |
%MX3.00015.0 | %MB3.00015 | |||
%MX3.00016.0 | %MB3.00016 | %MW3.00016 | %MD3.00016 | 410009 |
%MX3.00017.0 | %MB3.00017 | |||
… | … | … | … | … |
Modbus地址的确定:
·字变量,假设其地址为%MW3.00050,则对应的Modbus地址为:
·实数变量,5.1及以后版本的TG900P从%MD3.0开始使用,且实数变量的地址必须能被4整除,TG900P地址对应的Modbus地址计算如下:
5.1及以后版本的TG900P具有1948个字节可掉电保持的中间变量(TG900P冷启时,数据清零),地址从%MB3.100000至%MB3.101947。
用户要使用中间变量区中的掉电保持区,一是要其TG900P固件版本必须是5.1及以后版本,二是使用MULTIPROG5.35编程软件。
在掉电保持区同样可定义BOOL、BYTE、WORD和DWORD型变量,也可以定义为SINT、INT、DINT、REAL等类型。5.1及以后版本的TG900P在建立变量时不可以勾选Retain,否则下载出错。
掉电保存区寄存器地址如下:
TG900P地址 | 对应 Modbus地址 | |||
位 | 字节 | 字 | 双字 | |
%MX3.100000 | %MB3.100000 | %MW3.100000 | %MD3.100000 | 460001 |
%MX3.100001 | %MB3.100001 | |||
%MX3.100002 | %MB3.100002 | %MW3.100002 | 460002 | |
%MX3.100003 | %MB3.100003 | |||
%MX3.100004 | %MB3.100004 | %MW3.100004 | %MD3.100004 | 460003 |
%MX3.100005 | %MB3.100005 | |||
%MX3.100006 | %MB3.100006 | %MW3.100006 | 460004 | |
%MX3.100007 | %MB3.100007 | |||
%MX3.100008 | %MB3.100008 | %MB3.100008 | %MD3.100008 | 460005 |
%MX3.100009 | %MB3.100009 | |||
%MX3.100010 | %MB3.100010 | %MB3.100010 | 460006 | |
%MX3.100011 | %MB3.100011 | |||
%MX3.100012 | %MB3.100012 | %MB3.100012 | %MD3.100012 | 460007 |
%MX3.100013 | %MB3.100013 | |||
%MX3.100014 | %MB3.100014 | %MB3.100014 | 460008 | |
%MX3.100015 | %MB3.100015 | |||
%MX3.100016 | %MB3.100016 | %MB3.100016 | %MD3.100016 | 460009 |
%MX3.100017 | %MB3.100017 | |||
… | … | … | … | … |
掉电保持区实数变量的地址计算: