微 网 高 通

9. 本地I/O状态提示
来源: | 作者:微网高通 | 发布时间: 2025-05-09 | 4 次浏览 | 分享到:

9.1设置本地I/O事件与状态提示


指令

设置本地I/O事件与状态提示

字节

参数

设置请求

读取请求

设置应答

读取应答

1

m_iHeader

0XAA

0XAA

0XAA

0XAA

2

m_iOpCode

0X1F

0X30

0X9F

0XB0

3

m_iValueA

0X00

0X00

0X00

0X00

4

m_iValueB

0X00

0X00

0X00

0X00

5

m_iValueC

0X00

0X00

0X00

0X00

6

m_iValueD

0X00

0X00

0X00

0X00

7

m_iAmount

0X01

0X00

0X01

0X01

8

m_iCRCode.MSB

0X##

0X##

0X##

0X##

9

m_iCRCode.LSB

0X##

0X##

0X##

0X##

10

m_pBuffer[0]

IO.Status


IO.Status

IO.Status

 

参数-1

IO.Status:本地I/O状态提示的执行动作

(1)Bit0:蜂鸣器输出                   0X01:使能         0X00:禁止

(2)Bit1:文本格式消息输出         0X01:使能         0X00:禁止

(3)Bit2-6:未定义

(4)Bit7:二进制格式消息输出     0X01:使能         0X00:禁止

注意:不同的状态可以通过位操作以提高效率,比如   0X83 = ( 0X80 | 0X01 | 0X02 )

设置示例

请求:AA 1F 00 00 00 00 01 A9 1A 01

应答:AA 9F 00 00 00 00 01 6F 7B 01

读取示例

请求:AA 30 00 00 00 00 00 43 8F

应答:AA B0 00 00 00 00 01 5E A3 01



9.2数字量输出

指令

数字量输出

字节

参数

设置请求

设置应答

1

m_iHeader

0XAA

0XAA

2

m_iOpCode

0X61

0XE1

3

m_iValueA

0X00

0X00

4

m_iValueB

0X00

0X00

5

m_iValueC

0X00

0X00

6

m_iValueD

0X00

0X00

7

m_iAmount

N + 0X02

N + 0X02

8

m_iCRCode.MSB

0X##

0X##

9

m_iCRCode.LSB

0X##

0X##

10

m_pBuffer[0]

Channel.Start

Channel.Start

11

m_pBuffer[1]

Channel.Count

Channel.Count

12

m_pBuffer[2]

Channel.Mask[0-7]

Channel.Mask[0-7]

参数-1

Channel.Start:本地数字量输出的起始通道号码,0X00代表**个DO通道Q0

参数-2

Channel.Count:需要修改的通道的数量

参数-3

Channel.Mask[0-7]:通道的状态掩码, 0X00代表对应通道全部关闭,0XFF代表对应通道全部打开

如果Channel.Count 的数值大于 8,则 Channel.Mask 会有多个字节,每一个字节对应8个通道的开关状态

如果 Channel.Count 正好8 的倍数,则 N = Channel.Count/8

如果 Channel.Count 不是8 的倍数,则 N = Channel.Count/8 + 1

示例-1

请求:AA 61 00 00 00 00 03 45 C5 00 01 01

应答:AA E1 00 00 00 00 03 87 6C 00 01 01

说明:开启本地Q0通道

示例-2

请求:AA 61 00 00 00 00 03 85 04 00 01 00

应答:AA E1 00 00 00 00 03 47 AD 00 01 00

说明:关闭本地Q0通道

示例-3

请求:AA 1D 00 00 23 00 0C EF 53 AA 61 00 00 00 00 03 45 C5 00 01 01

应答:AA 9D 18 0C 23 00 10 A6 48 90 30 09 00 18 02 E8 03 00 00 00 00 01 80 01 80

应答:AA 1E 36 DC 27 00 0C B4 98 AA E1 00 00 00 00 03 87 6C 00 01 01

说明:

(1)开启远程Q0通道,原理是将关闭Q0通道的指令包装成一个 0X23 属性的数据包发送给远程节点,要求远程节点解码该数据包文并执行。

(2)应答报文有两条,**条是0X1D指令的应答,其应答指令是 0X9D

(3)第二条是一个数据接收报文,报文属性是0X27,其内容是二次包裹的应答指令

(4)应答内容是指令执行结果:AA E1 00 00 00 00 03 87 6C 00 01 01

示例-4

请求:AA 1D 00 00 23 00 0C C2 AF AA 61 00 00 00 00 03 85 04 00 01 00

应答:AA 9D 18 0C 23 00 10 BF 51 B0 30 08 00 18 02 E8 03 00 00 00 00 01 80 01 80

应答:AA 1E 36 DC 27 00 0C 99 64 AA E1 00 00 00 00 03 47 AD 00 01 00

说明:

(1)关闭远程Q0通道,原理是将关闭Q0通道的指令包装成一个 0X23 属性的数据包发送给远程节点,要求远程节点解码该数据包文并执行。

(2)应答报文有两条,**条是0X1D指令的应答,其应答指令是 0X9D

(3)第二条是一个数据接收报文,报文属性是0X27,其内容是二次包裹的应答指令

(4)应答内容是指令执行结果:AA E1 00 00 00 00 03 47 AD 00 01 00