对连接的MODBUS服务器执行写操作

描述

例子

写(m,目标,地址,)将数据写入MODBUS对象目标类型目标在起始地址地址使用值进行读取。你可以写线圈或保持寄存器。

例子

写(m,目标,地址,,serverId,'精度”)另外指定serverId,它是要发送读命令到的服务器的地址,以及精度,即被读取的寄存器的数据格式。

serverId可用于线圈和保持寄存器,和精度只供登记使用。您可以单独使用任何一个参数,也可以在写目标持有寄存器时同时使用这两个参数。

例子

全部折叠

如果写目标是线圈,则该函数将1-1968个连续的线圈序列写入远程设备中的on或off。线圈是一个单独的输出位。的值1表示线圈是开的,值为0是off的意思。

写入到4个线圈,从地址8289开始。的地址参数是要写入的线圈的起始地址,它是双精度的。的参数是要写入的值的数组。

写(m,“线圈”,8289,[1 1 0 1])

您还可以为要写入的值创建一个变量。

values = [1 1 0 1];写(m,“线圈”,8289,值)

如果写目标持有寄存器,该函数将在远程设备中写入1-123个连续寄存器的块。表示大于16位的值存储在连续的寄存器地址中。

将地址49153的寄存器设置为2000。

写(m,“holdingregs”、49153、2000)

可以写入线圈或持有寄存器,还可以为服务器ID指定可选参数,还可以为持有寄存器指定精度。您可以自行设置其中一个选项,也可以同时设置serverId选择和精度选择在一起。这两个选项都应该列在必需的参数之后。

写入3个值,从地址29473开始,在服务器ID 2,转换为精度。

写(m,“holdingregs”29473 928.1 50.3 24.4,2,“单一”)

输入参数

全部折叠

要写入的目标区域,指定为字符向量或字符串。您可以对两种类型的目标执行MODBUS写操作:线圈和保持寄存器,因此您必须将目标类型设置为任意一种“线圈”“holdingregs”。Target必须是对象名称之后的第一个参数。这个例子从地址8289开始写入4个线圈。

例子:写入(m,'coil ',8289,[1 1 0 1])

数据类型:字符

要写入的起始地址,指定为双精度。Address必须是对象名称之后的第二个参数。这个例子从地址5200开始写到6个线圈。

例子:写入(m,'线圈',5200,[1 1 0 1 1 0])

数据类型:

要写入的值的数组,指定为双精度值或双精度值数组。必须是对象名称之后的第三个参数。如果目标是线圈,有效值为01。如果目标持有寄存器,有效值必须在指定的精度范围内。可以在语法中包含值数组,如这里所示,也可以为值使用变量。

这个例子从地址8289开始写入4个线圈。

例子:写入(m,'coil ',8289,[0 1 0 1])

数据类型:

发送写命令到的服务器地址,指定为双精度。服务器ID必须在对象名称、目标、地址和值之后指定。如果你没有指定aserverId的默认值1使用。有效的值0 - 247,0是广播地址。这个例子从服务器ID 3的地址1开始写8个线圈。

例子:写入(m,'线圈',1,[11 11 1 0 0 0 0],3);

数据类型:

在MODBUS服务器上写入寄存器的数据格式,指定为字符向量或字符串。精度必须在对象名称、目标、地址和值之后指定。有效的值“uint16”,“int16”,“uint32”,“int32”,“uint64”,“int64”,“单一”,“双”。此参数是可选的,默认为“uint16”

请注意,精度不引用返回类型,哪一个总是“双”。它指定了如何解释寄存器数据。

这个示例从地址2开始使用精度为的4个保存寄存器写入“uint32”

例子:写(m,'holdingregs',2,[100 200 300 500],'uint32');

数据类型:字符

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了R2017a