----浔之漫智控技术(上海)有限公司03 读保持寄存器
40001-49999
字操作
单个或多个
不应该是只能读的吗?
在使用Modbus协议的时候,经常会遇到诸如40001、30001,10001之类的地址,这些数字代表什么含义呢?这其实是Modbus协议的数据模型和地址模型。
通常授权如五轴转换或主从功能只需勾选相应的授权进行就可以,但有些特殊功能如RDCC(冗余分布式笛卡尔坐标系)属于编译循环(.ELF),除了必须勾选相应的授权,还需要进行其他的操作。
一般购买了相应的编译循环后,西门子家会提供一个专门的文件夹里面装有编译循环的说明文件,对应的报警文件和***重要的编译循环。
1.首先需要将对应编译循环(xxx.ELF)拷入到调试-系统数据-NC数据-编译循环目录下
2.N26授权(RDCC)
3.重启PO
4.重启完成后通用机床数据会出现60900的新参数,勾选60900[0] $MN_CC_ACTIVE_IN_CHAN_RDCC bit0 ,即1H
5.再次重启后就会在通道机床数据中出现新的6开头的变量了
这样就可以按照相应的功能说明设置参数,使用了。
注:
装了编译循环时,备份除标准的MMC/PCLC/NC/补偿外,会多一项编译循环选项,若选择备份,可以用记事本打开查询到CCOEM目录及ELF文件。故备份的时候须勾选编译循环,保留所有的参数设置,才可用sinutrain完整仿真。
Modbus协议的数据模型
数据模型是对从站设备可访问的数据进行抽象,Modbus协议的数据模型定义了四种可访问的数据:
数据区块 数据类型 访问类型 线圈(Coils) 布尔 读/写 离散量输入(Discrete Input) 布尔 只读 输入寄存器(Input registers) 无符号2字节整型 只读 保持寄存器(Holding registers) 无符号2字节整型 读/写 其中,离散量输入和线圈数据类型是布尔量,因此只支持以位(bit)的方式进行访问,输入寄存器和保持寄存器数据类型是无符号2字节整型,因此支持以字的方式进行访问。当主设备访问从设备的这些数据模型时,离散量输入和输入寄存器只支持以只读的方式进行访问,而线圈和保持寄存器既可以读也可以写。
地址前缀编号 编号范围
(1~65536)编号范围
(1~9999)数据区块 数据类型 访问类型 0 000001~065536 00001~09999 线圈(Coils) 布尔 读/写 1 100001~165536 10001~19999 离散量输入
(Discrete Input)布尔 只读 3 300001~365536 30001~39999 输入寄存器(Input registers) 无符号2字节整型 只读 4 400001~465536 40001~49999 保持寄存器(Holding registers) 无符号2字节整型 读/写 数据模型中的每一种数据区块都较多允许有65536(2^16)个元素,Modbus定义了每个数据元素的地址,范围从0到65,535。但是每个数据元素的编号从1开始,范围从1到65,536。
需要说明的是:65536只是协议允许的较大元素范围,并不要求全部实现。Modbus协议允许设备根据自己的实际情况实现部分元素,甚至不要求实现模型中全部四种数据模型。譬如设备可能会选择不执行线圈、离散输入或输入寄存器,而只使用保持寄存器150至175和200至225。这是完全可以接受的,并且通过异常来处理无效的访问。