组态王通用单片机协议(ASCII)说明

合集下载

基于组态王的modbus ascii通信测试

基于组态王的modbus ascii通信测试

MODBUS ASCII读写通信帧实例(组态王测试)======================= 实数(float) ====================1、读实数左边为通信传输帧,右边为ASCII码地址最大为FFFF解释3A开头0D 0A结尾表示ascii的回车换行30 31 表示读保持寄存器中间4bit为起始地址30 30 30 30,从0开始对应plc就是40001,由于浮点数占用2个寄存器,所以第二个实数对应plc地址就为40003,否则就会出现数据重叠紧接着的4bit为读取寄存器数量30 30 30 32 ,表示读取两个寄存器的值(对应浮点数)一次最多能够读取125个,对应30 30 37 44即0 0 7 D46 41 表示LRC校验位2、读取实数的反馈下图红色为读取实数的反馈值,在读取功能码(30 33)后面加了一个额外的操作码(30 34),表示读取成功,后面均为数据,紧接着就是校验位,结束位上位机实数值读取数据含义同读取帧,前为写入起始地址,后为写入数量表示写入操作码写入数据表示写入功能码3、写实数上图蓝色为写入实数数据帧,以872.09为例。

Acsii “:”、“01”、“10”分别为帧头、从站地址和写多个保持寄存器的功能码(因为写实数一次要写入2个寄存器)。

紧接着是 写入的起始地址和写入数据的数量(均为2的倍数) 写入数量后加一个操作码 30 34(“04”) 然后才是写入数据,校验位和结束帧。

4、写实数反馈写入成功以后会马上反馈一个成功标志,如下所示。

即将不带数据的写入帧按原样返回,注意04操作码不需要,校验位需要改变。

==========================整数(short )========================= 5、写入单个整数值为1234对应4D2;写入单个整数只有起始地址00006、写单个整数反馈(原样返回)值为123的反馈帧,007B;写负数-239,实际传输数据块为FF11,反馈一样7、读单个整数8、读单个整数的反馈帧反馈值为123, 7B反馈值为-239,FF11。

基于ASCII的单片机与组态王通讯设计

基于ASCII的单片机与组态王通讯设计

命令格式可查阅组态王使用手册。
2 通 信 流 程 图 1 组态 王从 单 片机 读 数 据 过 程 如 图 1所 示 。 )
字 头 HE AD: 1字节 1个 AS I , 0 Cl码 4 H
设备 地 址 : 节 2个 A CI , ~ 5 ( 0 0 0f 1字 S l 0 2 5 即 ~ xf 码 H)
标志: 1字 节 2个 AS l , i bi bt 0:读 , i =1: Cl码 bt 0~ t i 7, 0= bt 0
写 。 i : : 打包 。 i b 2 0 , bt O 不 1 bt i = 0 数据 类 型 为字 节 。 i bt = 1 3 t bt i 0 , 3 2 数据 类 型为 字 。bt bt = X 数 据 类 型为 浮 点 数 。 i i 1, 3 2
单 片 机的 串行 通 信 , 建 监 控 系 统 。 文 完 成 了组 态 王 与 单 片 机 构 本
通 讯 正 常 时下 位 单 片 机 应 答 格 式 为
HA ED 设 备 地 址 # # 蚌或 CR l ( 式 5 格 )
的通 讯 设 汁 , 方 法 设 汁简 单 且 实 时 性 好 , 用 于一 般 用 户 。 该 适 1 组 态 王 与 单 片机 的通 信 协 议
HE AD 设备 地址 标 志 数据 地 址 数据 字 节数 数 据 异 或 CR
通 讯 不 正常 时下 位 单 片机 应 答 为
J A J设备地址 j { HE D 异或 c J( 6) R 格式
其 中
和 舟} 不 同 的数 值 , }为 具体 组 态 王 与 单 片机 通 讯 的
异 或 :异 或 从 设 备 地址 到异 或 字 节前 ,异 或 值 转 换 成 2个

通用单片机通讯协议(ASCII)

通用单片机通讯协议(ASCII)
例如,
1、在单片机中定义从地址0开始的数据类型为BYTE型的变量:
则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节
2、在单片机中定义从地址100开始的数据类型为UINT型的变量:
则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。。。。。。。。,数据类型UINT,每个变量占两个字节
bit3bit2 =1x,数据类型为浮点数。
数据地址:2字节4个ASCII码,0x0000~0xffff
数据字节数:1字节2个ASCII码,1—100,实际读写的数据的字节数。
数据…:为实际的数据转换为ASCII码,个数为字节数乘2。
异或:异或从设备地址到异或字节前,异或值转换成2个ASCII码
CR:0x0d。
46
30
30
30
46
30
34
31
30
46
46
46
46
30
30
字头
设备地址15
标志
写操作
浮点型
打包
数据地址15
数据字节数4
数据65535
30
30
0d
异或
若正确:
40
30
46
23
23
37
36
0d
字头
设备地址15
##
异或
若不正确:
40
30
46
2a
2a
37
36
0d
字头
设备地址15
**
异或
5.浮点数格式:
4字节浮点数=第一字节高4位ASCII码+第一字节低4位ASCII码

单片机与组态王的通信实例

单片机与组态王的通信实例

单片机与组态王的通信实例随着工业自动化的发展,越来越多的设备开始采用单片机进行控制。

而组态王作为一种通用的组态软件,可以方便地对单片机的控制过程进行监控和操作。

本文将介绍一个单片机与组态王通信的实例,以帮助读者了解二者的基本通信原理和实现方法。

一、单片机与组态王的通信方式单片机与组态王之间的通信一般采用串口通信方式。

串口通信是一种常见的通信方式,它通过串口数据线将单片机与计算机连接起来,实现数据传输。

在组态王中,可以通过设置串口参数来与单片机进行通信。

二、单片机通信协议在单片机与组态王通信的过程中,需要约定一些通信协议来实现数据的传输和控制。

通信协议一般包括数据格式、波特率、校验方式等。

根据不同的单片机和组态王版本,通信协议可能会有所不同,需要根据实际情况进行调整。

三、组态王通信控件的使用在组态王中,可以使用串口通信控件来实现单片机与组态王之间的通信。

控件提供了许多函数和属性,可以方便地进行串口通信。

例如,可以使用控件的Open函数打开串口,使用Read函数和Write函数进行数据的读取和写入。

四、实例:单片机控制LED灯亮灭下面是一个简单的单片机与组态王通信实例:通过单片机控制LED灯的亮灭。

该实例中使用的单片机型号为AT89C51,组态王版本为6.53。

1、硬件连接将AT89C51单片机的P1.0引脚连接到LED灯上,并将单片机的RXD 和TXD引脚分别连接到计算机的串口上。

2、编写程序在AT89C51单片机上编写程序,用于控制LED灯的亮灭。

程序如下:MOV P1.0, #1 //将P1.0引脚电平设为高电平,LED灯亮SJMP $ //无限循环,保持电平不变3、组态王组态设计在组态王中创建一个新项目,并添加一个设备,选择与AT89C51单片机进行通信的串口设备。

然后创建一个画面,添加一个按钮和指示灯,用于控制LED灯的亮灭。

4、编写组态王脚本程序在组态王中编写脚本来实现与单片机的通信。

脚本如下:Dim ledState As Integer //定义LED状态变量,初始值为0 Function OnClick() As Integer //按钮单击事件处理函数If ledState = 0 Then //如果LED状态为灭,则发送高电平信号,使LED亮起CommandManager.WriteTag("TagName", "1") //写入高电平信号ledState = 1 //修改LED状态为亮Else //如果LED状态为亮,则发送低电平信号,使LED熄灭CommandManager.WriteTag("TagName", "0") //写入低电平信号ledState = 0 //修改LED状态为灭End IfEnd Function5、调试与运行将程序编译并下载到AT89C51单片机中,然后运行组态王程序。

组态王与ARM开发板串口通信实现

组态王与ARM开发板串口通信实现

组态王与ARM开发板串口通信实现组态王与ARM开发板串口通信实现摘要本文阐述了一种基于亚控公司的组态王中的单片机通讯协议(ASCII)实现组态王与ARM9开发板串口通信的程序设计方法,本方法已在TQ2440开发板上编程设计实现,并成功与组态王正确通信。

关键词组态王;ARM9;通讯协议;串口通信0 引言随着工业自动化要求提高,组态软件设计的监控系统逐步普及,开发的控制设备与监控设备之间需要通讯。

组态王KingView软件基于Microsoft Windows XP,NT/2000操作系统,具有友好的人机操作界面,可与各种PLC、智能仪表等实时通讯,但无法与自己开发的控制设备通信,ARM9作为高性能处理器经常用来开发工控设备,所以实现组态王与ARM9开发板的串口通信对工控设备开发十分必要。

1 组态王与ARM9开发板的串口通信方法1.1 组态王支持的单片机通讯协议(ASCII)本设计采用亚控公司的组态王中的单片机通讯协议(ASCII)实现组态王与ARM9开发板串口通信。

亚控公司的组态王中的单片机通讯协议(ASCII)简介如下:上位机发送读命令:字头-设备地址-标志-数据地址-数据字节数-异或-CR若正常下位机应答:字头-设备地址-数据字节数-数据-异或- CR 若不正常下位机应答:字头-设备地址-**-异或- CR上位机发送写命令:字头-设备地址-标志-数据地址-数据字节数-数据-异或- CR若正常下位机应答:字头-设备地址-##-异或- CR若不正常下位机应答:字头-设备地址-**-异或- CR1.2 组态王与ARM9开发板串口通信方法组态王与ARM9开发板串口通信采用亚控公司的组态王中的单片机通讯协议(ASCII)。

组态王安装在上位PC机上,组态王本身支持单片机通讯协议(ASCII),要实现组态王与ARM9开发板串口通信,其实任务就是在下位机。

亚控科技公司提供的通用单片机通讯协议

亚控科技公司提供的通用单片机通讯协议

组态王通用单片机协议(ASCII)概述通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程序就可实现与组态王的通讯.组态王设置1、定义组态王设备定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口组态王的设备地址定义格式:##.#前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关.2、组态王通讯通讯方式:RS-232,RS-485,RS-422均可。

波特率:由单片机决定(2400,4800,9600and19200bps)。

注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致组态王数据词典--变量定义在组态王中定义的寄存器数据格式(类型):由单片机决定。

斜体字dd代表数据地址,此地址与单片机的数据地址相对应.注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。

为提高通讯速度建议用户使用连续的数据区。

例如,1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。

,数据类型为BYTE,每个变量占一个字节2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。

数据类型USHORT,每个变量占两个字节3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。

单片机与组态王基于ASCII型通讯程序设计

单片机与组态王基于ASCII型通讯程序设计
单 片 机 与组 态 王 基 于 A Cl 通 讯程 序 设 计 S l 型
单片机与组态王基于 A CI S 型通讯程序设计 l
Co m u ia in P o r m b t e CU a d ig e B s d o m nc t r g a o e we n M n K n Viw a e n ASCI r o o s t c l I p o
# e ie E d 0 0 / d f n x d 定 义字 尾 C 一个 A CJ / n R, S I . # e ie e d o o / d f R a x o 上 位机 读 n /
#d fn W re x e ie i O O1 t / 上 位 机 写 /
u h r n we 【] 1x 0O 3 ,x 000000 0 } c a A s r8 = 0 4 ,x 00 3 ,,,.,x d ;
应答 信 息 帧 数 组 / u h rc u t O / c a o n= . 接 收 字 头字 尾 间 数 据 个 数 t / u h rf g 0 c a l = ; / 单 片 机 接 收 到字 头 标 志 a /
Ths i pap ito ce t e er n rdu s h ASCI omm u c i p ooc l bewe KigVi I c niat on r t os t en n ew an MCU, d d an prvi s o de al C pr a l ogrm s ure o c co of m pl de i eme of o muncain nt c m i t pr o ol I ont o otc s. d ne d o ta h t e t at c an f clisdi t us t e y a it r l ie ec y e h ASCI r t o I ooc l p

基于组态王的modbusascii通信测试.doc

基于组态王的modbusascii通信测试.doc

基于组态王的modbusascii通信测试.docMODBUS ASCII读写通信帧实例(组态王测试)=======================实数(float) ====================1、读实勤左边为通信传输帧,右边为ASCII码地址最⼤为FFFF解释3A开头OD 0A结尾表⽰ascii的回车换⾏30 31表⽰读保持寄存器中间4bit为起始地址30 30 30 30,从。

开始对应pic就是40001 ,由于浮点数占⽤2个寄存器所以第⼆个实数对应pic地址就为40003,否则就会出现数据重叠紧接着的4bit为读取寄存器数量30 30 30 32 ,表⽰读取两个寄存器的值(对应浮点数)⼀次最多能够读取125个,对应30 30 37 44即0 0 7 D 46 41表⽰LRC校验位2、读取实数的反愦读取数据3A 30 31 30 33 30 34 30 3S 43 :OlO3oJ44sJo5C4?下位机寄存器内的值:01100000000204445A05C482..下图红⾊为读取实数的反馈值,在读取功能码(30 33 )后⾯加了⼀个额外的操作码(30 34),表⽰读取成功,后⾯均为数据,紧接着就是校验位,结束位上位机实数值31 0D 0A反馈读取操作码含义同读取帧,前为写⼊表⽰写⼊功能码起始地址,后为写⼊数量3A 30 31 丸 30 30 30 30 30 30 30 3。

3: 30 34 3434 35 41 30 35 43 34 38 32 0D 0A ⼠⼀、⽫⼟=写⼊数据3、写实数上图蓝⾊为写⼊实数数据帧,以872.09为例。

Acsii “:':“01':“10”分别为帧头、从站地址和写多个保持寄存器的功能码(因为写实数⼀次要写⼊2个寄存器*紧接着是写⼊的起始地址和写⼊数据的数量(均为2的倍数)写⼊数量后加⼀个操作码30 34 (“04”)然后才是写⼊数据,校验位和结束帧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

组态王通用单片机协议(ASCII)说明
概述
通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程
序就可实现与组态王的通讯.
组态王设置
1、定义组态王设备
定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口
组态王的设备地址定义格式:##.#
前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关.
2、组态王通讯
通讯方式:RS-232,RS-485,RS-422均可。

波特率:由单片机决定(2400,4800,9600and19200bps)。

注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致
3.组态王数据词典--变量定义
在组态王中定义的寄存器数据格式(类型):由单片机决定。

斜体字dd代表数据地址,此地址与单片机的数据地址相对应.
注意:
在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。

为提高通讯速度建议用户使用连续的数据区。

例如,
1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量
的寄存器为X0、X1、X2、X3、X4。

,数据类型为BYTE,每个变量占一个字节
2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变
量的寄存器为X100、X102、X104、X106、X108。

数据类型USHORT,每个变量占两个字节
3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变
量的寄存器为X200、X204、X208、X212。

数据类型FLOAT,每个变量占四个字节。

相关文档
最新文档