modbus上位机:
【标注说明】 【输出部分标注说明】 【上位机界面】(提供源代码)
modbus控制30路下位机程序
软件协议
一、串口通信定义
l 串口波特率:1位起始位、8位数据位、1位停止位、偶校验
l 默认地址:0x01 (通过上位机软件可以更改下位机地址)
l 通讯接口:标准RS232 以及标准485通讯
1、指令功能表
功能 | 从机地址 0x01~0xff | 命令 | 寄存器地址 高字节、低字节 | 数据域 | CRC校验 高低字节 | 长度 | 1个字节 | 1个字节 | 2个字节 | | 2个字节 | 读取继电器状态 | Addr | 0x02 | 0x0001 | 高字节:0x00 低字节:0x0f(16个继电器状态) | CRCH CRCL | 控制多路继电器 | Addr | 0x0F | 0x0000~0x001e
| 继电器个数 高:0x00
低:0x01~0x1e
| 字节个数 (1个字节) 0x01~0x04 | 数据域 对应位为1:开 对应位为0:关 | CRCH CRCL | 控制单个继电器 | Addr | 0x05 | 0x0000~0x000f
| 高:0xff 低:0x00 吸合
高:0x00 低:0x00 断开
| CRCH CRCL | 设定模块地址 | Addr | 0x06 | 0x0010
| 要修改的地址两个字节
| CRCH CRCL |
|
|
|
|
|
|
|
| 2、指令示例及详解
1. 读取30路继电器状态(地址0x01)
地址 | 功能 | 继电器起始地址 | 读取个数 | CRC校验 | 0x01
| 0x02
| 高:0x00
| 低:0x01
| 高:0x00
| 低:0x1e
| 0xA9
| 0xC2
|
|
|
|
|
|
|
|
| 从机回应
地址 | 功能 | 字节数 | 返回继电器状态 | CRC校验 | 0x01
| 0x02
| 0x02
| 高:0x00
| 低:0x00
| 0x59
| 0xB8
|
|
|
|
|
|
|
| 注:返回的十六路状态0为断开,1为吸合
2. 控制多路继电器
a.控制所有继电器全开主机发送:
地址 | 功能 | 继电器起始地址 | 控制继电器个数 | 字节个数 | 数据域 | CRC校验 | 0x01
| 0x0F
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x1e
| 0x04
| 0xff 0xff
0xff 0xff
| 0xc1
| 0xc2
|
|
|
|
|
|
|
|
|
|
| 从机回应:
地址
| 功能
| 继电器起始地址
| 控制继电器个数
| CRC校验
| 0x01
| 0x0F
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x1e
| 0xd5
| 0xC3
|
|
|
|
|
|
|
|
| 注:控制多路时数据域中二进制数对应位为1是打开某一路继电器,为0关闭某一路继电器
b控制所有继电器全关主机发送:
地址 | 功能 | 继电器起始地址 | 控制继电器个数 | 字节个数 | 数据域 | CRC校验 | 0x01
| 0x0F
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x0F
| 0x04
| 0x00 0x00
0x00 0x00
| 0xc3
| 0x17
|
|
|
|
|
|
|
|
|
|
| 从机回应:
地址
| 功能
| 继电器起始地址
| 控制继电器个数
| CRC校验
| 0x01
| 0x0F
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x1e
| 0xd5
| 0xC3
|
|
|
|
|
|
|
|
| 注:控制多路时数据域中二进制数对应位为1是打开某一路继电器,为0关闭某一路继电器
3. 控制单个继电器状态
控制第一路继电器开主机发送:
地址 | 功能 | 继电器地址 | 打开继电器 | CRC校验 | 0x01
| 0x05
| 高:0x00
| 低:0x00
| 高:0xFF
| 低:0x00
| 0x8C
| 0x3A
|
|
|
|
|
|
|
|
| 从机回应:
地址 | 功能 | 继电器地址 | 打开继电器 | CRC校验 | 0x01
| 0x05
| 高:0x00
| 低:0x00
| 高:0xFF
| 低:0x00
| 0x8C
| 0x3A
|
|
|
|
|
|
|
|
|
控制第一路继电器关主机发送:
地址 | 功能 | 继电器地址 | 打开继电器 | CRC校验 | 0x01
| 0x05
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x00
| 0xCD
| 0xCA
|
|
|
|
|
|
|
|
| 从机回应:
地址 | 功能 | 继电器地址 | 打开继电器 | CRC校验 | 0x01
| 0x05
| 高:0x00
| 低:0x00
| 高:0x00
| 低:0x00
| 0xCD
| 0xCA
|
|
|
|
|
|
|
|
| 3、上位机测试软件
上位机简介
1.上位机编译环境:vs2008.net
2.使用语言是vb.net
3.使用该软件需要安装framwork3.5软件(一般win7系统都已安装)
4.打开该软件前请先把数据线和控制板连接好,控制板供电
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg 上位机软件可控制七个30路继电器输出控制板,如要需要控制更多从机设备,需要更改上位机软件.
一、把默认的0x01地址改为其他地址如下:
地址
| 功能
| 继电器起始地址
| 更改地址
| CRC校验
| 备注
| 01
| 06
| 00
| 10
| 00
| 01
| 49
| CF
| 设备1
| 01
| 06
| 00
| 10
| 00
| 02
| 09
| CE
| 设备2
| 01
| 06
| 00
| 10
| 00
| 03
| C8
| 0E
| 设备3
| 01
| 06
| 00
| 10
| 00
| 04
| 89
| CC
| 设备4
| 01
| 06
| 00
| 10
| 00
| 05
| 48
| 0C
| 设备5
| 01
| 06
| 00
| 10
| 00
| 06
| 08
| 0D
| 设备6
| 01
| 06
| 00
| 10
| 00
| 07
| C9
| CD
| 设备7
|
单片机源程序如下:
简要说明:
一、 尺寸:长233.7mmX宽182.7mmX高25mm
二、 主要芯片:STC12C60S2支持双串口(支持51系列DIP40封装单片机)
三、 工作电压:直流12伏供电(另有24V供电)
四、 串口1(COM1)下载程序,(串口1和串口2均可与上位机通讯)
五、输出供电采用延时通电电路(1至10秒可调)
功能:当输出接有被控制设备,避免单片机初次上电(或下载程序)时,输出设备误动作。此功能在实际应用中起到很大作用
五、 特点:
1、具有电源指示。
2、三十路带光电隔离输出控制继电器。
3、标准的11.0592M晶振。(便于设置串口波特率)
4、具有上电复位和手动复位。
5、支持51系列DIP40封装单片机。
5、输出三十路继电器的供电采用延时供电 (避免被控制设备误动作)
6、输出三十路具有LED指示。
7、三十路12V继电器控制,控制设备。
8、可控制交流220V/10A一下设备。(最大控制设备2000W)
9、具有双串口通信功能(可以同时和上位机通信)。
10、单片机无加密,可插拔更换,可随意更改程序。
所有资料51hei提供下载:
|