开发协议 %e5%bc%80%e5%8f%91%e5%8d%8f%e8%ae%ae
您现在的位置:首页 > 开发协议 > 以太网、网络开关【十六进制协议】发送控方式

使用教程

下载中心

以太网、网络开关【十六进制协议】发送控方式

此版本为:【FW1】,第一版最早版本,大部分情况发货不带此协议,当老客户需要采用本协议时,出货时与本公司业务员进行联系需要【FW1】版本即可。
其中【FW1】也包括:J2020、J4045、J8048、J8045、J1603、J1605、J1610MR。


TCP上位机作为主机,连接到设备的2000号端口的十六进制发送控制方式。

工程师采用TCP软件或TCP测试软件,连接控制器之后,设备会自动上报最新的输入,输出,和实时时间信息,每秒将会主动上报给上位机软件,不可修改或停用。

上报格式和以下协议描述的应答格式相同。


通信协议采用二进制模式通信,使用十六进制表示。

开发人员当不熟悉二进制和十六进制之间的关系,这里简易说明一下,其实这两者是一样的,都是表示一个数字,即时0到255之间,(实际上还可以使用8进制和十进制表示,或者任意进制表示)。只是书面上的写法不一样而已,十六进制描述起来简短方便,并且二进制和十六进制之间的转换很简便,即是8、4、2、1原则,不懂得朋友,请查阅数字电路教程或电脑编程教程第一章节。

如果不熟悉如何使用十六进制如何表示二进制的值,这里简单介绍:

00,表示二进制00000000

01,表示二进制00000001

02,表示二进制00000010

….

0A,表示二进制00001010

0B,表示二进制00001011

继电器的状态对应二进制的每一个位,比如第一路开用二进制表示00000001,第3路开,二进制表示00000100,

对于多路的表示方法,比如第7路和第一路同时开,二进制表示为01000001,十六进制表示为41

例如全开表示FF,可以用win系统计算器,在二进制与十六进制进行转换。

以此类推。


单路开

TCP连接到设备,2000号端口,发十六进制:

单独开第1路:25 00 00 00 00 02 00 00 00

单独开第2路:25 00 00 00 00 02 00 01 00

单独开第3路:25 00 00 00 00 02 00 02 00

单独开第10路:25 00 00 00 00 02 00 09 00

单独开第16路:25 00 00 00 00 02 00 0F 00

单独开第17路:25 00 00 00 00 02 00 10 00

方框里面放的是继电器的编号,0表示第1路,1表示第2路,2表示第3路。

以此类推

设备将返回一串十六进制数据,例如:

25 00 00 00 00 05 00 20 07 00 00 00

方框里面表示的是4字节位变量,总共可以表示32路。

第一位0x07,表示开了第1路,第2路,第3路。

蓝色底色的20表示本设备的输出路数,0x20表示32,共有32路输出。


单路关

TCP连接到设备,2000号端口,发十六进制:

单独关第1路:26 00 00 00 00 02 00 00 00

单独关第2路:26 00 00 00 00 02 00 01 00

单独关第3路:26 00 00 00 00 02 00 02 00

单独关第10路:26 00 00 00 00 02 00 09 00

单独关第16路:26 00 00 00 00 02 00 0F 00

单独关第17路:26 00 00 00 00 02 00 10 00

返回应答数据跟以上相同。


单路翻转

TCP连接到设备,2000号端口,发十六进制:

27 00 00 00 00 02 00 01 00

返回应答数据跟以上相同。

读入继电器状态

TCP连接到设备,2000号端口

发十六进制数据:01 00 00 00 00 00 00

设备将返回一串十六进制数据:01 00 00 00 00 05 00 10 0F 00 00 00

蓝色底色的数值是当前板子继电器的通道数,10表示十六进制0x10,表示有16通道。

方框内的数据就是继电器当前状态,一个字节8个位代表8个继电器,左边的字节表示最低8位,
即: [8-1]  [16-9]  [24-17]  [32-25]

读入输入端状态

TCP连接到设备,2000号端口

发十六进制数据:02 00 00 00 00 00 00

设备将返回一串十六进制数据:02 00 00 00 00 05 00 20 0F 00 00 00

方框内的数据就是继电器当前状态,一个字节8个位代表8个继电器,左边的字节表示最低8位,
即: [8-1]  [16-9]  [24-17]  [32-25]


全开或全关指令

TCP连接到设备,2000号端口

全开指令,发十六进制:03 00 00 00 00 05 00 20 FF FF FF FF

全关,发十六进制:03 00 00 00 00 05 00 20 00 00 00 00


单独开某一路,其他全关

TCP连接到设备,2000号端口

开第一路:03 00 00 00 00 05 00 20 01 00 00 00

开第二路:03 00 00 00 00 05 00 20 02 00 00 00

开第三路:03 00 00 00 00 05 00 20 04 00 00 00

开第四路:03 00 00 00 00 05 00 20 08 00 00 00

开第五路:03 00 00 00 00 05 00 20 10 00 00 00

开第六路:03 00 00 00 00 05 00 20 20 00 00 00

开第七路:03 00 00 00 00 05 00 20 40 00 00 00

开第八路:03 00 00 00 00 05 00 20 80 00 00 00

开第九路:03 00 00 00 00 05 00 20 00 01 00 00

开第十路:03 00 00 00 00 05 00 20 00 02 00 00

开第十一路:03 00 00 00 00 05 00 20 00 04 00 00

以此类推,总共不会超过最大数量(32路)

单独开某几路,其他全关

首先参考上面单独开某一路,其它全关
如:  开第一路:03 00 00 00 00 05 00 20 01 00 00 00,我们看倒数第四组为“01”

然后看开第二路:03 00 00 00 00 05 00 20 02 00 00 00倒数第四组为 ”02”

我们可能会同时开启第一路与第二路,可以将倒数第四组的01与02相加,得出结果为03,

此时可以发送:03 00 00 00 00 05 00 20 03 00 00 00,即可同时开启第一路,第二路,其它全关。

另外,倒数第四组只是对应的前8路继电器,后8路继电器是将倒数第三组相加。

如果需要保持正在打开的某几路,并不需要其它全关,需要读入当前状态进行对比加减后再将数据发出即可。如果需要更好用的,参考字符串协议。


翻转(或触发)指定的继电器

TCP连接到设备,2000号端口,发十六进制数据

比如:

翻转第一位:24 00 00 00 00 04 00 01 00 00 00

翻转第二位:24 00 00 00 00 04 00 02 00 00 00

翻转第三位:24 00 00 00 00 04 00 04 00 00 00

翻转第四位:24 00 00 00 00 04 00 08 00 00 00

翻转第九位:24 00 00 00 00 04 00 00 01 00 00

翻转第二位和第十一位:24 00 00 00 00 04 00 02 04 00 00


重启设备,TCP连接到服务器,2000号端口

发十六进制:10 00 00 00 00 00 00


设置输入控制模式

2A 00 00 00 09 00 00 01 05 00 0a 00 00 00 00 01

读取输入控制模式

2A 00 00 00 02 00 00 00 00

本文完.