读取的数据网络通讯协议服务器
在网络通讯协议类型的数据你可以阅读
的读
从四种类型的函数执行读取操作target-addressable领域:
线圈
输入
输入寄存器
持有注册
当您执行读取,您必须指定目标类型(目标
),起始地址(地址
),读值的数量(数
)。你也可以选择指定服务器的地址serverId
)对任何目标类型,数据格式(精度
)寄存器。
例如显示整个工作流的阅读一个PLC存储寄存器,明白了从一个远程温度传感器读取温度。
读卷网络通讯协议
如果阅读目标是线圈,该函数读取的值从1 - 2000相邻线圈在远程服务器,开始在指定的地址。线圈是一个单一的输出。的值1
表示线圈和一个值0
意味着它是关闭的。
读线圈的语法是:
读(obj,“线圈”,地址,数量)
的obj
参数是Modbus对象的名称。下面的示例假设您已经创建了一个Modbus对象,米
。创建的对象的信息,请参阅创建一个Modbus连接。
的地址
参数是线圈阅读的起始地址,指定为一个双。的数
参数是线圈阅读的数量,指定为一个双。如果读取成功,它返回一个向量的值的两倍1
或0
,第一个值向量对应的线圈在起始地址的值。
这个例子中读取8卷,从地址1。
读(m,“线圈”1 8)
ans = 1 1 0 1 1 0 1 0
你也可以读值到一个变量中以供以后访问。
data =阅读(m,“线圈”1 8)
数据= 1 1 0 1 1 0 1 0
读输入网络通讯协议
如果输入阅读目标,函数读取的值从1 - 2000连续离散输入远程服务器,开始在指定的地址。一个离散的输入是一个输入。的值1
表示输入,和一个值0
意味着它是关闭的。
读取输入的语法是:
读(obj,“输入”,地址,数量)
的obj
参数是Modbus对象的名称。下面的示例假设您已经创建了一个Modbus对象,米
。创建的对象的信息,请参阅创建一个Modbus连接。
的地址
参数是输入的起始地址读取、指定为一个双。的数
参数是输入阅读的数量,指定为一个双。如果读操作成功,它将返回一个向量的值的两倍1
或0
,第一个值向量对应于输入值的起始地址。
这个例子中读取10离散输入,从地址2。
读(m,“输入”、2、10)
ans = 1 1 0 1 1 0 1 0 0 1
读取输入寄存器在网络通讯协议
如果阅读目标输入寄存器,函数从1 - 125连续读取的值输入寄存器在远程服务器,开始在指定的地址。一个输入寄存器是一个16位只读寄存器。
读取输入寄存器的语法是:
读(obj, inputregs、地址、数量)
的obj
参数是Modbus对象的名称。下面的示例假设您已经创建了一个Modbus对象,米
。创建的对象的信息,请参阅创建一个Modbus连接。
的地址
参数是输入的起始地址寄存器读、指定为一个双。的数
参数是输入寄存器阅读的数量,指定为一个双。如果读操作成功,它将返回一个向量的双打。每个双代表一个16位寄存器值,第一个值向量对应于输入寄存器值的起始地址。
这个例子中读取4输入寄存器,从解决20。
读(m,“inputregs”,20岁,4)
ans = 27640 60013 51918 62881
读持有注册网络通讯协议
如果目标是保持寄存器,读函数读取的值从1 - 125连续持有注册远程服务器,开始在指定的地址。保持寄存器是一个16位的读/写寄存器。
读取输入的语法是:
读(obj, holdingregs、地址、数量)
的obj
参数是Modbus对象的名称。下面的示例假设您已经创建了一个Modbus对象,米
。创建的对象的信息,请参阅创建一个Modbus连接。
的地址
参数的起始地址寄存器读,指定为一个双。的数
参数是保持寄存器阅读的数量,指定为一个双。如果读操作成功,它将返回一个向量的双打。每个双代表一个16位寄存器值,向量中的第一个值对应于存储寄存器值的起始地址。
这个例子中读取4保持寄存器,从解决20。
读(m,“holdingregs”,20岁,4)
ans = 27640 60013 51918 62881
例如显示整个工作流的阅读一个PLC存储寄存器,明白了从一个远程温度传感器读取温度。
指定服务器ID和精度
你可以阅读任何四种类型的目标,也为服务器ID指定可选的参数,并且可以为寄存器指定精度。
服务器ID选项
的serverId
参数指定服务器的地址发送读命令。有效的值0 - 247
,0
广播地址。这个参数是可选的,默认值是1
。
请注意
如果你的设备使用slaveID
财产,它可能使用它的工作serverID
财产的读
这里描述的命令。
语法来指定服务器ID:
读(obj,目标,地址,统计,serverId)
这个例子从服务器ID读取8线圈从地址1 3。
读(m,“线圈”1、8、3)
精确的选择
的“精度”
参数指定的数据格式在Modbus寄存器读取®服务器。有效的值“uint16”
,“int16”
,“uint32”
,“int32”
,“uint64”
,“int64”
,“单一”
,“双”
。这个参数是可选的,默认值是“uint16”
。
请注意,“精度”
不引用返回类型,这始终是吗“双”
。它只指定了如何解释注册数据。
语法来指定精度:
读(obj、目标、地址、计数、精度)
这个例子中读取8控股寄存器地址开始1使用精度“uint32”
。
读(m,“holdingregs”1 8“uint32”)
两个选项
你可以设置的serverId
选择和“精度”
当目标是一个寄存器选择在一起。当你使用这两个选项,serverId
后首先列出所需的参数。
语法来指定服务器ID和精度:
读(obj、目标、地址、计数、serverId精度)
这个例子中读取8控股寄存器地址开始1使用精度“uint32”
从服务器ID 3。
读(m,“holdingregs”1 8 3“uint32”)
读混合数据类型
你可以阅读的不同数据类型的值(分别)在一个读操作通过指定每个值的数据类型。你可以在的语法读
包含数组函数,或设置变量的数量和精度。这两种方法都显示在这里。
在读
语法
的一个例子读
函数与一个数据类型是:
读(m,“holdingregs”500年10“uint32”)
在这个示例中,持有注册目标类型,起始地址500年
,数10
和精度uint32
。读10混合数据类型的值,您可以使用该语法:
读(m,“holdingregs”500 (3 2 3 2){“uint16”,“单一”,“双”,“int16”})
你使用数组指定数量和精度。在这种情况下,重要的是3,2,3,2。的函数读取3值数据类型uint16
2值的数据类型单
3数据类型的值双
和2值的数据类型int16
。寄存器是连续的,从地址500年
。这个例子中读取3uint16
值从地址500 - 502
,2单
值从地址503 - 506
3双
值从地址507 - 518
,2int16
值从地址519 - 520
,都在一个操作。
使用变量
而不是使用文字数组内读
功能如上所示,您可以指定变量作为函数参数的数组值。相当于上面的示例:
数=(3 2 3 2)精度= {“uint16”,“单一”,“双”,“int16”}读取(m,“holdingregs”,500年统计,精确)
使用变量时方便有很多值来读取和它们的混合数据类型。