其中ModbusCommand 为 Function Code 的枚举: enumModbusCommand:short{ ReadCoils =0x01, ReadDiscreteInputs =0x02, ReadHoldingRegisters =0x03, ReadInputRegisters =0x04, WriteSingleCoil =0x05, WriteSingleRegister =0x06, WriteMultipleCoils =0x0F, WriteMultipleRegisters =0x10, } 文中为方便理解请求类...
【松下】MODBUS 指令例子-PLC为从站
void *dataList,如果是写操作,则对应需要写的数据列表,线圈为bool量、寄存器为uint16_t型无符号整数。 uint8_t *commandBytes是生成的命令序列 而返回值则是生成的命令序列的长度。在我们需要生成访问服务器的命令时,调用这个函数就可实现。不过一定要注意生成的命令序列的长度,定义commandBytes对象时长度一定要足够。
该函数的原型如下: uint16_t CreateAccessSlaveCommand(ObjAccessInfo objInfo,void *dataList,uint8_t *commandBytes) 该函数有3个参数,其中ObjAccessInfo objInfo为对象访问信息;void *dataList为数据列表指针,该参数主要用于写从站功能的命令生成;uint8_t *commandBytes为返回的从站访问命令。 ObjAccessInfo是一...
uint16_t CreateAccessServerCommand(TCPLocalClientType *client,ObjAccessInfo objInfo,void *dataList,uint8_t *commandBytes) 这个函数有4个参数,分别是: TCPLocalClientType *client,所发起访问的本地客户端对象。 ObjAccessInfo objInfo,用于生成访问命令的信息,如站地址、功能码等。
publicenumFunctionCodeEnum{/*** 读取线圈状态*/F01("01"),/*** 读取输入状态(离散量输入)*/F02("02"),/*** 读取保持寄存器*/F03("03"),/*** 读取输入寄存器*/F04("04"),/*** 写单个线圈*/F05("05"),/*** 写单个寄存器*/F06("06"),/*** 写多个线圈*/F15("15"),/*** 写多个寄...
Function Code :表⽰要求Slave 处理各种不同资料或程序的Command ,以不同的Function Number 来区分之。Eight-Bit Data Bytes :依据Function Code ⽽有不同的详细资料定义,Slave 设备依据此两字段资料,做各种处理。Error Check :当通信传送资料时,因考虑信号可能会受外界⼲扰,所 以必须加上Error Check ...
6、网络6:调用MTC_TRAN_0指令,调用该指令可对拧紧轴驱动器执行读写操作,各参数如下所示:(1)EN:使能端,同一时刻只能有一条MTC_TRAN_0指令使能,EN 输入参数必须一直接通直到 MTC_TRAN_0 指令CompletionMark位被置 1;(2)CommandWSwitch:读写请求开关,每一条新的读写请求需要使用信号沿触发;(3)...
2)CommandWSwitch:读写请求开关,每一条新的读写请求需要使用信号沿触发; 3)SlaveAddressID:单元标识符,一般由客户端设定,特殊情况亦可根据服务器进行设定; 4)ModbusFunction:Modbus功能码,支持01、02、03、04、05、06、15、16等8个功能码; 5)RegisterAddres:寄存器地址,设定范围为0~65535,即就是16进制0000~FFFF...
The command query simply sends the slave address and function code with the error check (CRC) as shown here: Report Slave ID Example Response (Specific To Acromag 900MB) Reset Slave (08) This command is used to trigger a reset of the module and its effect is equivalent to a power-on ...