组态人机界面与单片机通信案例
- 格式:pdf
- 大小:353.51 KB
- 文档页数:9
单片机与组态王的通信实例随着工业自动化的发展,越来越多的设备开始采用单片机进行控制。
而组态王作为一种通用的组态软件,可以方便地对单片机的控制过程进行监控和操作。
本文将介绍一个单片机与组态王通信的实例,以帮助读者了解二者的基本通信原理和实现方法。
一、单片机与组态王的通信方式单片机与组态王之间的通信一般采用串口通信方式。
串口通信是一种常见的通信方式,它通过串口数据线将单片机与计算机连接起来,实现数据传输。
在组态王中,可以通过设置串口参数来与单片机进行通信。
二、单片机通信协议在单片机与组态王通信的过程中,需要约定一些通信协议来实现数据的传输和控制。
通信协议一般包括数据格式、波特率、校验方式等。
根据不同的单片机和组态王版本,通信协议可能会有所不同,需要根据实际情况进行调整。
三、组态王通信控件的使用在组态王中,可以使用串口通信控件来实现单片机与组态王之间的通信。
控件提供了许多函数和属性,可以方便地进行串口通信。
例如,可以使用控件的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单片机中,然后运行组态王程序。
在很多时候,涉及到单片机控制的产品都需要用到一个显示界面(正确称为人机界面最为合适,简称HMI),然而,单单显示又是不够的,很多单片机主板采集到的模拟量,数字量等数据需要进行保存功能,人机界面与单片机断电之后,等下次设备再次开机的时候,又需要把之前的数据以一定的表格,曲线显示出来,这种功能称之为断电数据保存功能。
解决的方案有2种:1.单片机主板里面集成EEROM等掉电存储芯片。
这种是最为传统的解决方案,优点在于一般的单片机工程师都能够想到,缺点是成本比较高,增加编程的难度,尤其是数据量大的时候,芯片的价格也相应增长。
如果是用在数据量比较少的场合,用普通的STC等单片机就可以了,因为单片机里面集成了EEROM,存储量至少是 1K以上的。
2.选择带有数据保存功能的人机界面,更复杂的还有配方等功能。
这种方案的优势很明显,节约成本,单片机主板设计简单,编程也方便,存储容量更大,还可以时时把相关采集数据以excel等文件的格式复制到U盘。
现在就做个例程,介绍如何把单片机采集的各路数据进行保存,整改,对比,复制到U 盘等等。
该工程应用实例是基于测控行业的一种仪器设计的,模拟量采集有16路,涉及到精确的数据显示,我们采用32位有符号数表示(这个可以在人机界面编程的时候设计,步骤有说到)。
相关步骤如下:1.安装相应的嵌入式组态软件,这里以广州市微嵌计算机科技有限公司()的组态软件为例,因为涉及单片机开发的,它可以提供工业标准的Modbus RTU协议和简单的自由协议接口函数。
安装好组态软件之后,双击桌面软件图标点击“新建”,如下图:2.选择人机界面HMI的型号,这里选择WQT_T8048_070(800*480),点击下面的新增按钮,表示新增与人机界面连接的设备串口这里选用工业标准的Modbus RTU协议作为与单片机连接的协议,当然也可以选择自由协议(free protocol)。
点击下一步,进入工程描述状态,这些根据个人情况填写,填写之后点击确定进入画面编辑状态。
组态王与单片机多机串口通信的设计1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。
现在组态软件繁多,比如KingVieW(组态王>、MCGS、W inCC等。
KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。
由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。
而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。
2 组态王与单片机的串口通讯方法目前,组态王与单片机的通信多是通过动态数据交换(DDE>或通过自己开发通讯驱动程序完成。
DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。
但不可靠和非实时。
而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。
组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。
3 PC机与单片机的硬件接口电路图1为上位PC机与下位单片机80C51的连接电路。
PC机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。
RS-485采用差分式传输信号,最大传输距离为1 219 m.最大传输速率为10 Mb/s.对同时出现的两条信号线A、B的干扰有较强的抑制能力。
当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。
RS-485采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120 Ω>。
由于80C51系列单片机STC89C52串行接口的,TTL电气特性与RS-485电气特性不相符,STC89C52不能与RS-485直接连接,需要电气转换。
触摸屏与单片机的通讯实现摘要:在当前的嵌入式设备中,触摸屏作为人机接口得到了广泛的应用。
文章讨论了基于HIT6600触摸屏模块与富士通16位单片机90F340串口通讯实现的软硬件设计。
关键词:HIT6600 90F340 触摸屏单片机1、引言随着后PC 时代的到来,嵌入式系统在信息家电、移动计算设备、网络设备、工业控制和仪器仪表等众多领域中得到了广泛的应用,在这些产品中,触摸屏因方便灵活、节省空间、直观等特点,已经逐渐取代键盘成为嵌入式计算机系统主流的输入设备。
触摸屏输入系统由触摸屏、触摸屏控制器、微控制器及其相应的驱动程序构成。
本文介绍触摸屏控制器与富士通16位单片机90f340串口通讯实现的软硬件设计。
2、触摸屏与单片机的硬件连接采用HIT6600触摸屏与90F340单片机一对多通信。
把触摸屏的COM1 9孔插座与串口通讯的90F340单片机相连接。
注意:通信电缆DB9是1-485的正极、6 -485的负极。
由于是一对多的通讯,所以增加串口通讯芯片MAX1487满足分机负载要求。
3、建立触摸屏与单片机通讯的软件设置打开触摸屏组态软件,从[应用]下拉菜单中选[设定工作参数],弹出如图1所示工作参数设置对话框。
触摸屏的系统参数中装置名称设置成ModBus Master,通信参数设置必需与单片机通信参数设置一致。
通信口/连线方式设置成COM1,数据位设置成8位,1个停止位,波特率9600,校验位设置与单片机编程一致,PLC站号是单片机定义的站地址一样,站号需从1开始。
参数设置完成,按确定键。
4、触摸屏的主态软件通讯设置编辑HIT6600触摸屏提供了一种既方便又功能强大的宏指令应用方式,使人机得以经由内部宏指令(Macro Function)功能执行数值运算,逻辑判断,流程控制,数值传递,数值转换,计时器计数器,自定通讯指令操作等等,由宏指令的使用可让人机不仅和PLC 连线通讯,同时由另一通讯口来执行同其他通讯设备连线,此功能不仅提供有效的系统整合同时成为最经济便宜的硬件应用架构。
单片机与组态王的通信组态王(kingView)内置了通用单片机通信模块,这样,我们自己开发的单片机仪表就可以挂接在KingView上了。
因为这样,所以对这个东西有了些兴趣,做了些研究。
(1)研究环境组态王6.53,免费下载,当然有使用限制,不过用于研究是没有问题的。
下载地址:Keil软件,Porteus,这些就不多说了。
Virtual Serial Ports Driver XP 5.1 虚拟串口软件,用此软件可以生成一对相互联接的虚拟串口,这样,初期的研究工作就在电脑上完成了,省得用硬件电路板了。
(2)资料KingView提供了一份简单的说明材料,就在下载后的解压缩文件包中。
具体的位置是:Value Pack\技术资料\常用协议\单片机ASCII码通讯协议(3)电路搭建注意单片机的TXD与虚拟串口的TXD,单片机的RXD与虚拟串口的RXD是连在一起的,不要交叉哦,我在这上面可吃了不少的苦头。
这个虚拟串口元件的设置如下图所示:说明:这里选COM2,是因为我事先用Vspd生成了一对虚拟串口,com2和com4,至于其他参数则应该选得和kingview中的一致,这个到下面再说。
什么,这个元件不知哪里找?这里啦(4)VSPD的使用现如今的电脑很少有两个串口的了,人呢也是越来越懒了,虽然手边的电路板是现成的,写片子是容易的,但是仍然还是嫌麻烦的,所以就发动狗狗搜一搜,找到了这个VSPD,当然它是很容易用的在first后面选一个串口名,然后在Second后面再选一个串口名,然后点一下Add Pair 就行啦。
怎么选都可以,就算是选com1也是可以的,虽然com1是真实存在的物理串口,但是这个VSPD照样把它给虚拟了。
这里我选的是com2和com4,大家可以看到在左侧的窗口中出现了这样一对互联的串口了,也就是说,我从串口2发数据,然后串口4就能收到。
同样,我从串口4发数据,串口2就能收到。
(5)组态王置根据自己屏幕选择演示项目中的一个找到设备->DDE,双击“新建...”选择:智能模块(上面的图中看不到)->单片机->通用单片机ASCII->串口起个名字,然后选择串口号,我们选择com4这一步选择地址,需要为自己的单片机设备确定一个地址,这有点麻烦。
昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设计⼤家好,我是『芯知识学堂』的SingleYork,前⾯给⼤家介绍了“昆仑通态⼈机界⾯与单⽚机通信实战教程⼀:⼯程界⾯的设计”,今天笔者就要来给⼤家介绍“昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设其实昆仑通态的软件也⾃带了很多标准设备的驱动,如:西门⼦PLC的驱动、三菱PLC的驱动等,直接加载驱动就可以⽤了,但是对于我们⾃⼰开发的单⽚机板的话,就需要⾃⼰编写驱动了。
⼀说到脚本驱动,⾃然就⽀持标准的modbus协议,也⽀持⾃定义协议,对于我们这些不是很复杂的设备来说,个⼈觉得,没必要去深⼊研究modbus协议,尤其是菜鸟,⾃定义协议可能会更加实⽤,所以,笔者重点给⼤家介绍“⾃动义协议”。
我们先来看⼀下,我们之前设计好的HDMI⼯程:从这个HDMI⼯程中我们可以看到,⼀共有14个输⼊状态、12个输出状态和12个输出控制,其中:14个输⼊状态可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出状态也可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出控制,我们可以也可以⽤2个字节(BYTE)来按位控制,也可以⽤12个BYTE来按控制,只是按位操作来控制的话,可能操作会⿇烦⼀些,为了操作简单,我们就⽤12个BYTE来实现控制吧;这样⼀来,我们就可以制定以下通信协议:(1)触摸屏读指令(0x80:⼀次性读取多个数据)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 起始地址(2)+和校验(从长度位开始累加)从机应答(单⽚机):帧头(2)+ 长度(1)+ 功能码(1)+ 数据⼀(输⼊状态⼀:X00-X07)+数据⼆(输⼊状态⼆:X10-X17)+ 数据三(输出状态⼀:Y00-T07))+ 数据四(输出状态⼆:Y10-X17)+和校验(从例:主机发送:37 73 04 80 0000 84从机返回:5A A5 06 80 00 00 00 00 86(2)触摸屏写指令(0x81:写单个寄存器操作)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 寄存器地址(2)+寄存器值(2)+和校验(从长度位开始累加)例:37 73 06 81 0000 0001 88写指令从机就不设置单独的返回指令了,在写完之后,可以通过读指令来查询状态来判断有没有写成功。
单片机与人机交互设计基于触摸屏和LCD的界面现代科技的快速发展使得单片机在各个领域中得到了广泛应用。
而人机交互设计则成为了确保单片机能够高效运行的关键因素之一。
在众多人机交互设计中,基于触摸屏和液晶显示屏(LCD)的界面设计被证明是一种相对简单而有效的设计方案。
本文将重点探讨基于触摸屏和LCD的界面在单片机中的应用。
一、触摸屏和LCD的基本原理触摸屏主要是通过电容或者电阻的方式来感知用户触摸操作,并将触摸信息转化为数字信号传递给单片机进行处理。
而LCD则是通过液晶材料的光学特性来显示图像和文字。
触摸屏和LCD在单片机中的应用可以实现用户与系统的直接交互,使得操作更加简洁、直观。
二、触摸屏和LCD的优势和应用场景1. 优势:- 方便易用:通过触摸屏和LCD,用户可以直接点击、滑动等方式进行操作,避免了繁琐的物理按钮设计和控制。
- 信息展示清晰:LCD的高分辨率和色彩显示能力使得界面展示更加清晰、生动,为用户提供舒适的视觉体验。
- 界面设计灵活:通过软件设计,开发人员可以根据具体需求自由设计界面,实现更多样化的功能和操作方式。
2. 应用场景:- 智能家居控制:通过触摸屏和LCD,用户可以方便地控制家居设备,如调节灯光、温度、音量等。
- 工业控制系统:触摸屏和LCD可以在工业环境中应用,通过图像化的界面进行开关控制、参数调整等操作。
- 汽车导航系统:借助触摸屏和LCD,驾驶员可以方便地控制导航、音响等系统,提高驾驶的安全性和便利性。
三、触摸屏和LCD在单片机开发中的实现方式1. 硬件配置:单片机需要配合相应的触摸屏和LCD模块来完成交互设计。
常见的触摸屏包括电容触摸屏和电阻触摸屏,其中电容触摸屏在精度和响应速度上更有优势。
同时,为了提供图像显示功能,LCD模块通常需要支持合适的分辨率和显示颜色。
2. 软件开发:通过单片机的编程实现触摸屏和LCD的交互功能。
开发人员可以借助相关的开发工具进行代码编写和调试。
单片机与人机交互触摸屏按键和显示屏的应用现代科技的迅速发展,使得人机交互成为了当下热门的领域之一。
作为人类与电子设备之间的桥梁,触摸屏按键和显示屏的应用在我们的日常生活中扮演着越来越重要的角色。
而单片机则作为嵌入式系统中最为常见的控制器,与触摸屏按键和显示屏的结合,不仅提升了用户交互体验,也为我们的生活带来了便利。
本文将深入探讨单片机与人机交互触摸屏按键和显示屏的应用。
一、触摸屏按键的应用触摸屏按键是一种新型的人机交互界面,它通过电容或者压力等方式感应用户的点击动作,并将点击位置信号转换为电信号输入,从而实现对设备的控制。
单片机通过与触摸屏按键的连接,可以实现多种功能。
1.1 触摸屏按键在智能手机中的应用随着智能手机的普及,触摸屏按键已经成为了目前手机最常见的操作方式之一。
通过单片机与触摸屏的连接,我们可以轻松实现对手机屏幕的触摸操作,包括滑动、点击、放大缩小等。
这不仅提高了手机的操控性,也为用户带来了更好的使用体验。
1.2 触摸屏按键在工业控制领域的应用在工业控制领域,触摸屏按键的应用也越来越广泛。
通过与单片机的连接,我们可以将触摸屏作为控制设备的输入端口,实现对各种设备的控制和监控。
例如,在一些工厂中,工人可以通过触摸屏按键来控制生产线的开关、调整设备参数等,大大提高了生产效率。
二、显示屏的应用显示屏作为人机交互的重要组成部分,具有信息输出的功能,将数据以人类可读的形式展示出来。
单片机通过与显示屏的连接,可以实现对数据的显示和处理,提升用户交互的体验。
2.1 显示屏在计算机领域的应用在计算机领域,显示屏是我们与计算机最直接的交互方式之一。
通过单片机与显示屏的连接,我们可以输出文字、图像、视频等多种形式的信息。
这不仅使得计算机的操作更加直观,也为我们提供了更方便的信息交流方式。
2.2 显示屏在仪器仪表领域的应用在仪器仪表领域,显示屏的应用也非常广泛。
通过单片机与显示屏的连接,我们可以将各种测量数据以数字或者图形的形式显示出来,方便用户进行实时监测和数据分析。
* 组态协议: 字头设备地址标志数据地址数据字节数数据… 异或CR* 字头:1字节1个ASCII码,40H* 设备地址: 1字节2个ASCII码,0—255(即0---0x0ffH)* 标志:1字节2个ASCII码,bit0~bit7,//把接收值将它发出即可* bit0= 0:读,bit0= 1:写。
* bit1= 0:不打包。
* bit3bit2 = 00,数据类型为字节。
* bit3bit2 = 01,数据类型为字。
* bit3bit2 = 1x,数据类型为浮点数。
* 数据地址: 2字节4个ASCII码,0x0000~0xffff //把接收值将它发出即可* 数据字节数:1字节2个ASCII码,1—100,实际读写的数据的字节数。
//把接收值将它发出即可* 数据…:为实际的数据转换为ASCII码,个数为字节数乘2。
* 异或:异或从设备地址开始异或,到异或字节前结束得异或值,异或值转换成2个ASCII 码* //如得0x4b,对应Ascll为0x34和0x42.* CR:0x0d。
*/////////// 读格式为:字头设备地址标志数据地址数据字节数异或 CR// 写格式: 字头设备地址标志数据地址数据字节数数据… 异或 CR#include "reg52.h"#define uchar unsigned char#define CTH0 0xfe#define CTL0 0x0csbit led1=P2^7;//定义LED.sbit led2=P2^6;sbit led3=P2^5;sbit led4=P2^4;//unsigned char i10=0; //收数据标//unsigned int j=0; //动态显示数据用unsigned char i=0; //动态显示用int j=0; ////调试用unsigned char k=0; ////调试用1~100.//unsigned char k4=0; //K4为发送的数据 ;K6为组态下传数据标志。
单片机与触摸屏通讯单片机与触摸屏通讯有两个方案:一是用modbus—rtu协议,二是自由通讯协议;本实例采用广州市微嵌计算机科技有限公司的人机界面作为参考,因为公司提供一系列的技术支持和公布单片机源代码,开发工程方便有效。
公司网站:方案比较:方案一modbus—rtu协议:优点:工业标准通讯协议,具有通用性,,传输数据量大缺点:需要时间去了解协议的格式和以及按照规定编写通讯程序(我们提供MODBUS-RTU源代码,客户直接移植就可以,不必费心)方案二自由协议:优点:数据格式客户自己定义,灵活多变,定制性强,可以模拟任何已知报文的通讯协议缺点:传输数据量不大,通用性不强,移植不方便客户可以根据以上两种通讯协议的优缺点来选择理想的方案;实现方法:首先下载公司的人机界面组态软件,下载地址是:/new/league.asp?keyno=34组态软件WQTDesigner方案一:1.工程属性选用MODBUS-RTU协议;2.先了解MODBUS-RTU协议,基本的01 03 05 06 16 的功能码需要了解,其他可以不去深究;提供相关的资料3.使用我们提供的MODBUS-RTU协议(C语言)开发源代码,把主要的01 03 05 0616 函数移植到单片机通讯上,大大节省了开发时间;方案二:1.工程属性选用FreeProtocol协议;2.3.打开控制令编辑器(设定—>宏指令—>宏指令编辑器)或者直接按F8;4.新增宏指令,在宏指令里面使用到Output()、Input()、SetWordData()、GetWordData()这四个函数;注:可以参考附一5.Output()函数,把设定好的字符串发送到相应的串口输出;Input()函数,从设定好的串口读取需要的字符串;6.采集显示:SetWordData()函数,把Input()函数接收回来的数据,发送给HIM用户自定义寄存器里,然后在显示控件里填上已经有数据的HIM寄存器,即可显示单片机采集上来的数据;7.改写发送:在显示控件了把需要改写的数据绑定HIM寄存器,使用GetWordData()获得修改后的数据,通过output()发送把数据发送到单片机;附一:Output();【描述】第一个参数channel表示通道,如果通道为com1,则channel=1;如果通道为com2,则channel=2,数据类型为int。
单片机与触摸屏的接口设计与人机交互应用案例研究在现代科技不断发展的今天,单片机与触摸屏的结合已经成为一种常见的电子产品设计方式。
单片机作为一种集成电路芯片,在微处理器中具有完整的中央处理器、存储器、I/O接口等硬件系统,而触摸屏则是一种通过人体电容来实现操作的输入设备。
单片机与触摸屏的结合,可以实现更加便捷、灵活和智能的人机交互方式,本文将通过一个实际案例来介绍单片机与触摸屏的接口设计与人机交互应用。
在本案例中,我们以一个智能家居控制系统为例进行介绍。
该系统主要包括单片机控制模块、触摸屏显示模块、以及各种传感器和执行器。
单片机控制模块负责通过接口与触摸屏显示模块进行通信,接收用户输入的指令并控制各种设备的运行状态。
触摸屏显示模块则用于显示系统的状态信息和操作界面,实现人机交互。
在该系统中,单片机与触摸屏的接口设计是非常关键的一环。
首先,我们需要选择合适的通信接口来连接单片机和触摸屏。
常见的接口有SPI接口、I2C接口等,不同的接口具有不同的特点和优缺点,需要根据实际需求进行选择。
在本案例中,我们选择了SPI接口来连接单片机和触摸屏,因为SPI接口具有高速传输、简单连接、抗干扰能力强等优点,非常适合在该系统中使用。
接着,我们需要设计合适的通信协议来实现单片机与触摸屏之间的数据交互。
通信协议可以理解为双方之间的一种约定,规定了数据的传输格式、命令的格式等,确保双方能够正常通信。
在本案例中,我们设计了一种简单的通信协议,包括数据包格式、命令格式、校验和等内容,保证数据传输的可靠性和稳定性。
除了接口设计,人机交互应用也是该系统中的一个重要环节。
触摸屏作为用户的主要操作界面,需要设计直观、友好的交互界面,方便用户进行各种操作。
在本案例中,我们设计了一个简洁明了的控制界面,包括各种开关按钮、滑动条等元素,用户可以通过触摸屏轻松地进行各种设备的控制。
总的来说,单片机与触摸屏的接口设计与人机交互应用在智能家居控制系统中起着至关重要的作用。
组态王与单片机的通信与设计前言本文主要是解决装有组态王的PC机与单片机的通信问题,这里选择通过计算机的COM1口进行串行通信。
单片机和PC机的串行通行一般采用RS-232、RS-422或RS-485总线标准接口,也有采用非标准的20mA电流环的。
为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式,既可以保证正常通信时的最大通信端口数量。
这里采用RS-232接口与单片机通信的方法。
由于两者间的电平规范不一致,实现两者间的通信要解决接口电路的电平转换问题。
正文选题背景随着单片机和微机技术的不断发展,单片机的应用也从独立的单机向网络发展,由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。
在一个大型的应用系统中,通常由单片机完成数据的采集和上传,后台则通过PC机对数据进行分析并处理,复杂的还要建立数据库形成网络,二者的结合,充分发挥了单片机在实时数据采集和微机对图形处理、显示以及数据库管理上的优点,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。
随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展,作为用户无需改变运行程序原代码的软件平台工具——工控组态软件日渐成熟。
由于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制操作技术和经验的矛盾,极大地提高了自动化工程的工作效率。
近年来,工控组态软件在中小型工业过程控制工程、工业自动化工程中越来越受到欢迎。
不仅如此,工控组态软件还在配电自动化、智能楼宇、农业自动化、能源监测等领域也逐步展示了其独特的优势。
单片机控制系统以其高性能价格比、稳定、易于实现等特点而被广泛使用,但他难以实现动态复杂的图形监控界面;而组态王软件具有强大丰富的监控界面设计功能,却难以实现复杂的控制算法,而单片机则难以实现动态复杂的图形监控界面,若采用以单片机为下位机,以装有组态王的PC极为上位机的控制方式,将彻底改变原来单片机控制系统的单调、简单的控制界面的缺陷,进一步推动单片机控制方式的广泛应用。
STM32单片机与组态屏Modbus通讯模拟设计作者:周明王振马睿来源:《电脑知识与技术》2020年第26期摘要:在组态屏上添加按键,通过Modbus网络上RTU模式通信读取和修改STM32单片机LED灯的状态,ModbusRTU模式把命令传给STM32单片机,STM32单片机收到命令改变状态并做出相应的回复,最终实现按键控制STM32单片机LED灯的状态。
关键词:STM32单片机;组态屏;Modbus协议中图分类号:TP3; ; ; ; 文献标识码:A文章编号:1009-3044(2020)26-0207-02Abstract: Add keys to the configuration screen, read and modify the status of STM32 single chip LED light through RTU mode communication on Modbus network, Modbus RTU mode transmits the command to STM32 single chip, STM32 single chip receives the command to change the status and make the corresponding response, and finally realize the key control of STM32 single chip LED light status.Key words: STM32 single chip computer;configuration screen;Modbus protocol1背景随着工业IT技术的不断发展,工业自动化软件成为未来发展趋势,组态软件作为新生事物仍处在高速发展时期,而STM32单片机应用广泛,种类丰富,支持各大嵌入式操作系统,实现组态屏与STM32单片机的通信,可以开发很多新的功能,应用于各大领域。
串口屏(触摸屏)组态软件+多台51单片机MODBUS RTU多机串口通信程序源码串口屏(触摸屏)组态软件+多台51单片机MODBUS RTU多机串口通信程序源码实现触摸屏(串口屏)与单片机的通讯,主要是解决通讯协议的问题。
本文使用开放的Modbus通讯协议,以广州易显的HMImaker触摸屏作主机(Master),单片机作从机(Slaver)。
HMImaker触摸屏本身支持Modbus通讯协议,只要单片机按照Modbus 协议进行收发数据,就可以进行通信了。
触摸屏与单片机之间采用RS-485标准接口直接连接,与多台51单片机MODBUS RTU多机串口通信一、包括如下实例:二、串口屏(触摸屏)组态软件HMImaker实现功能:01、对4台51单片机4路数字量输入实现读操作,通过MODBUS RTU的02功能码实现; 02、对4台51单片机4路继电器输出实现读操作,通过MODBUS RTU的01功能码实现; 03、对4台51单片机4路模拟量输入实现读操作,通过MODBUS RTU的04功能码实现; 04、对4台51单片机4路模拟量输出实现读操作,通过MODBUS RTU的03功能码实现; 05、对4台51单片机4路继电器输出实现写操作,通过MODBUS RTU的05功能码实现; 06、对4台51单片机4路模拟量输出实现写操作,通过MODBUS RTU的06功能码实现; 07、组态工程以串口屏(触摸屏)组态软件HMImaker为例,如下所示:三、单片机从站支持的MODBUS RTU功能码:01、功能码01:此功能可对单片机4路(甚至更多,可扩展)数字量输出多路进行读操作; 02、功能码02:此功能可对单片机4路(甚至更多,可扩展)数字量输入多路进行读操作; 03、功能码03:此功能可对单片机4路(甚至更多,可扩展)模拟量输出多路进行读操作; 04、功能码04:此功能可对单片机4路(甚至更多,可扩展)模拟量输入多路进行读操作; 05、功能码05:此功能可对单片机4路(甚至更多,可扩展)数字量输出一路进行写操作; 06、功能码06:此功能可对单片机4路(甚至更多,可扩展)模拟量输出一路进行写操作; 07、功能码15:此功能可对单片机4路(甚至更多,可扩展)数字量输出多路进行写操作; 08、功能码16:此功能可对单片机4路(甚至更多,可扩展)模拟量输出多路进行写操作。
浅谈组态王6.55与单片机的应用及通讯摘要:本文详细介绍了组态王6.55与51单片机各自特点及结合在一起应用的优点,简单介绍组态王6.55与51单片机直接通信的参数说明。
这种组态王6.55与51单片机的通信方法简单、快速、可靠,并在工业自动化方面得到广泛的应用。
关键词:组态王6.55,51单片机,通信Abstract:This paper introduces in detail the Kingview 6.55 and their respective characteristics of the 51 microcontroller and combining the advantages in application of the parameters together, introduces Kingview 6.55 and 51 SCM direct communication. This communication method between Kingview 6.55 and 51 SCM is simple, fast and reliable, and has been widely used in industrial automation.Keyword: Kingview6.55,51 SCM,communication单片机具有强大的数据处理能力、控制功能强、价格低廉、可靠性高、功耗小的特点,应用领域非常广泛,是计算机自动化控制中最为流行的一种控制机型,目前的应用领域有:(1)工业自动化:机械、电子、电力、石油、化工、纺织、食品等领域,无论过程控制、数据采集与测控技术、生产线上的机器人,都离不开单片机;(2) 信息和通信产品:计算机外设、办公自动化设备;(3)家用电器:智能化;(4) 仪器仪表:数字化、智能化、多功能化、柔性化,单片机使精度提高、结构简化、体积减轻、携带方便,并增加了显示、报警和自诊断功能;(5) 军事装备:单片机也渗入其中随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化及网络化方向推进,北京亚控科技发展有限公司的Kingview6.55工控组态软件以其工作性能稳定可靠、友好的人机界面、配置硬件方便以及易学易用,同时其驱动程序较为丰富(多达500多种的设备、3000多种驱动),如支持DDE、板卡、OPC、市面上使用的大部分PLC、智能仪表、智能模块等;支持Windows通用的ActiveX控件、SQL数据库访问、配方管理应用、网络功能(B/S结构的网络发布)、冗余功能(即双设备冗余、双机热备和双网络冗余)。
基于ModBus协议的STM32单片机与MCGS通信设计ModBus是一种常用的通信协议,广泛应用于工业自动化领域。
本文将介绍如何基于ModBus协议设计和实现STM32单片机与MCGS之间的通信。
一、引言在现代工业自动化系统中,通信是不可或缺的一环。
STM32是一款功能强大的单片机,而MCGS是一款常用的人机界面软件,它们之间的通信可以实现对工业设备的控制和监测。
本文旨在介绍如何利用ModBus协议实现STM32单片机和MCGS之间的稳定通信。
二、通信原理ModBus协议是一种基于主从结构的通信协议。
在通信过程中,STM32单片机作为从机,MCGS作为主机。
主机通过发送指令来获取或设置从机的数据。
三、硬件设计1. STM32单片机选择在本设计中,我们选择了一款功能强大且成本较低的STM32F103系列单片机作为通信的从机。
这款单片机具有较多的GPIO口、通信接口和丰富的外设,非常适合工业自动化领域的通信需求。
2. 连接方式STM32单片机与MCGS之间可以通过RS485通信进行连接。
RS485是一种常用的工业通信接口,具有抗干扰能力强的特点。
在连接过程中,需要将STM32的TX引脚与MCGS的RX引脚相连,同时将STM32的RX引脚与MCGS的TX引脚相连。
四、软件设计1. STM32单片机程序设计在STM32单片机程序设计中,首先需要配置串口通信的参数,包括波特率、数据位数、停止位数等。
然后按照ModBus协议规定的格式进行数据的解析和处理。
将接收到的数据根据指令要求进行响应,然后再将响应数据发送给MCGS。
2. MCGS界面设计在MCGS界面设计中,需要添加ModBus通信控件,并进行相应的参数配置。
通过配置从机的地址、寄存器的地址以及读写操作,实现与STM32单片机的通信。
同时,设计合适的界面布局,使用户能够直观地了解设备的状态和实时数据。
五、通信测试在完成硬件和软件设计后,需要进行通信测试,以确保通信的稳定性和准确性。
组态人机界面与单片机通信案例
很多时候,工业控制或者产品设计方面受到PLC这种功能确定,扩展麻烦,成本昂贵等方面的制约因素,需要独立开发一种特殊功能,但是又需要连接触摸屏通讯,工程师在这个方面往往需要花费很大功夫,现在我要帮大家解决的问题就是单片机与人机界面触摸屏通讯的最简单,最有效的2种方法,其实就是分为2种通讯协议,即工业标准的Modbus RTU协议和工程师自己定义的自由协议。
本实例采用微嵌组态软件,因为公司提供一系列的技术支持和公布单片机源代码,加上公司的人机界面支持自由协议等等先天优势,开发工程方便有效。
方案比较:
方案一modbus—rtu协议:
优点:工业标准通讯协议,具有通用性,,传输数据量大
缺点:需要时间去了解协议的格式和以及按照规定编写通讯程序(需要MODBU S-RTU源代码)
方案二自由协议:
优点:数据格式客户自己定义,灵活多变,定制性强,可以模拟任何已知报文的通讯协议
缺点:传输数据量不大,通用性不强,移植不方便
工程师可以根据以上两种通讯协议的优缺点来选择理想的方案;
新建一个工程文件
型号对应的是公司出产产品型号。
新增一个通信口,微嵌的人机界面有两个通讯口COM1,COM2,这两个串口既可以做RS232,又可以做RS485,通讯协议对应的是单片机工程师需要用到的协议,其中有modbus RTU协议,自由协议Free Protocol,当然还包括西门子S7-200,台达PLC,欧姆龙,三菱等协议,这里我们选择COM1自由协议Free Protocol,通讯速率57600,数据位8,1位停止位,偶校验:
首先我们随便建一个比较简单实用的画面,用位按钮开关控制单片机的指示灯,采集单片机的模拟数据显示在组态软件的数码管(可以通过电脑串口连接单片机在线模拟实际应用)
然后我们要把位按钮的属性绑定到人机界面的系统寄存器,然后再用人机界面内置的宏指令通讯函数output函数把寄存器数据传输给单片机,让单片机接收这个指令之后进行动作控制,方法实现如下:
我们把位按钮1绑定到人机界面系统寄存器LB的第0个里面,再用一个L ED指示灯观察按钮的状态(绑定系统寄存器LB0)
对于数码管显示,属性设置原来差不多,但是需要用input函数将从单片机采集的数据存储到人机界面系统寄存器,再通过宏指令函数映射显示出来,方法如下:
我们将通道一绑定到系统寄存器LD的第1个寄存器,LD是数据寄存器,L B是布尔量的位寄存器,注意两种寄存器的区别。
接下来我们要用到人机界面的组态软件内置的通讯函数,数学运算函数和其他函数了。
由“设定”菜单那里进入到宏指令编辑器进入宏指令编辑:
点击新增,我们写一个宏指令通讯函数,向单片机发送控制指令和接受数据:
具体编程如下:
宏指令test
void Macro_main( )
{
unsigned char dat[4];
unsigned short dat1[4];
int re_dat;
Input( 1, dat, 4, re_dat);
/*如果不明白函数使用,可以点击函数向导按钮查找函数使用说明:
【描述】
第一个参数channel表示通道,如果通道为com1,则channel=1;如果通道为com2,则channel=2,数据类型为int。
第二个参数pString表示写入通道的字符串的地址,数据类型为unsigned char *。
第三个参数count表示字符串中的字符个数,数据类型为int。
第四个参数result表示Output函数运行后返回的结果,如果result大于0,则表示读写有效,数据类型为int。
注意:此函数只能用在freeprotocol(自由协议通道)中。
【用法】
Input(channel,pString,count,result);
【举例】
char srt[9];
int result;
Input(1,str[0],9,result);
dat1[0]=dat[0];
dat1[1]=dat[1];
dat1[2]=dat[2];
dat1[3]=dat[3];
SetWordData(0,1,1,16, dat1[0]);
SetWordData(0,1,2,16, dat1[1]);
SetWordData(0,1,3,16, dat1[2]);
SetWordData(0,1,4,16, dat1[3]);
}
test2:用于发送指令到单片机进行控制,主要用到output函数
static unsigned char key[3];
void Macro_main( )
{
bool key_data[16];
int re_dat;
GetByteData(0, 1,0, 9, 0,key_data);
key[0] = key_data[7]<<7 | key_data[6]<<6 | key_data[5]<<5 | key_dat a[4]<<4 | key_data[3]<<3 | key_data[2]<<2 | key_data[1]<<1 | key_da ta[0];
//key[1]=key_data[15]<<7 | key_data[14]<<6 | key_data[13]<<5 | key_ data[12]<<4 | key_data[11]<<3 | key_data[10]<<2 | key_data[9]<<1 | key_data[8];
key[1]=key_data[8];
Output( 1, key, 2, re_dat);
}
对应单片机下位机的编程,作为单片机开发者应该都知道如何编程了,这里我就提供这个例子的51单片机源代码供大家参考:。