菜单

如何动态修改驱动IP或COM口

下载

1 新建普通字符串变量(名称为设备名字+参数名称)

示例 1:西门子动态修改 IP

(1)新建字符串变量 (!注意名称命名为 设备名字+参数名称)

如图所示 变量名为 设备名:西门子 S7-200smart + 固定参数名称: _addr

(2)把该变量设置为自动保存

(3)修改变量的值

(4)保存逻辑

cpp 复制代码
	vm->saveAll();

此时设备运行 ip 地址即为 该变量地址

示例 2:ModBusRTU 动态修改 COM

(1)新建字符串变量

如图所示 变量名为 设备名:西门子 S7-200smart + 固定参数名称: _portName

可通过该方式设置的参数

下面添加的设备名称为 Modbus/RTU
创建 设备名称+以下参数 如 Modbus/RTU_portNameModbus/RTU_baudRate ...

串口

端口号 _portName
波特率 _baudRate
数据位 _dataSize
校验位 _parity
停止位 _stopBits
485 延时 _r485delay

网口

用法同串口
地址 _addr
端口 _port

动态修改其他参数

下面以 modbus 为例

修改站号

c++ 复制代码
dm->getDevice("Modbus/RTU")->setStationNo(n)

进行其他 setting 设置

c++ 复制代码
string settings = R"({"stopBits":"1","maxReadLen":"120","parity":"1","DeviceId":"Modbus/RTU","portName":"COM1","maxAddrInterval":"10","issim":"true","NoR":"3","coding":"0","seqAsc":"0","comDelay":"1200","StationNo":"1","seqLong":"0","Protocol":"ModbusRtu","if":"RS485","framDelay":"4","seqFloat":"2","period":"10","Optz":"true","dll":"ModBusDriver","seqInt32":"2","dataSize":"8","maxWriteLen":"120","baudRate":"9600","seqInt16":"0"})"
dm->getDevice("Modbus/RTU")->setSettings(settings)
上一个
程序刚启动时获取不到设备变量的值怎么办
下一个
ModBus如何按长字节读取
最近修改: 2026-04-02Powered by