嵌入式 MCGS 串口通信快速入门及编程实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 认识MCGS

1.1 组态软件发展概况

MCGS的全称为Monitor and Control Generated System,即监视与控制通用系统,是北京昆仑通态自动化软件科技有限公司开发的一套基于Windows平台用于快速构造和生成上位机监控系统的组态软件,主要完成现场数据的采集、前端数据处理和设备的输出控制。在这里提到“组态软件”那什么是“组态”呢?

“组态”一词源于英文“Configuration”,意思是“配置”“设置”“设定”。组态是计算机行业对功能模块组织状态的一种称谓,“组织”是根据事物的属性特征进行逻辑分类整理,属于“静”处理;“状态”是根据需要对设备的功能进行设定,使其工作于某种具体功能状况下,属于“动”处理。这一点与人类社会有很多相似之处,比如,人类社会刚开始产生时,大家一起捕鱼、狩猎、采摘,满足氏族成员的生存需要;随着生产力的提高,产品有了富余,分工扩展到更大的群体,即由人组成的社会。《史记》中的五帝本纪有记载:“皋陶为大理,平,民各伏得其实;伯夷主礼,上下咸让;垂主工师,百工致功;益主虞,山泽辟;弃主稷,百谷时茂;契主司徒,百姓亲和;龙主宾客,远人至”,说明当时社会已经出现职能不同的部门。如图1-1所示,有的善于农耕,有的精通冶炼,有的从事制陶,有的善于养蚕,等等。直到现在,社会分工更加详细,大到一个国家,小到一个公司,在这里,分工就是职能的一种划分,只有分工才能提高社会的生产效率,所以才出现“术业有专攻”的概念。

图1-1 古代人类社会的职能分工图

同样,随着分工的需要,人类使用的工具也开始细分为不同的功能模块,出现了许多功能相似的装备模块,并且形成系列体系,其目的是提高效率和可靠性。对于大家熟悉的电脑而言,每台主机都由主板、CPU、内存、显卡、硬盘、机箱、电源和显示器等功能不同的模块构成,如图1-2所示,每种功能的模块又可以有很多种选择。要购置一台电脑,可以选择华硕主板、AMD的CPU、希捷硬盘、金士顿内存、技嘉显卡;也可以选择英特尔主板、戴尔CPU、联想硬盘、威刚内存、七彩虹显卡等,显然,只要将这些不同功能的模块“组装”在一起,便完成了电脑的生产,快捷高效。

图1-2 计算机功能模块构成示意图

对于日益发展的软件,也有类似的概念,最初为了完成一项系统任务,用C、Basic、FORTRAN等语言编写各种函数,每个函数完成一种特定功能,如字母大小写转换、字符个数的统计、数值排序、记录检索等,这些函数成为构成系统的基本要素,可以称之为“功能模块”,最后通过工程将各个模块链接起来,形成完整的可以处理某一事务的应用软件,这种将不同功能的函数组织在一起,形成一定的集合状态来处理相应事务的过程,就是所谓的“组态”。参考二维码视频讲解。

可以看出,无论是人类社会的“职能分工”、生产工具的“种类划分”,还是软件的“功能模块”,都体现了“各司其职”“物以类聚”“术业专攻”的特点,即功能化、专业化、模块化和集成化,因功能细化产生专业化,专业化的结果导致模块化,通过模块“组装”集合在一起,就形成产品。用户将不同功能的资源组织在一起,而这个过程对用户而言很方便,只需要简单的选择确定(设定)、关联匹配(配置)、摆放布置(设置)即可完成,也就是“Configuration”的实质。

从上述分析可以看出,在“组态”出现之前,要完成项目开发,都是通过高级语言(C、C++、VC++、VB、VB.net、C#、Java script等)编写程序实现的,这个过程周期长、成本高、工作量大、不可预见问题多。组态软件的出现,解决了上述问题,过去需要几个月的时间,采用组态几天就可以完成,提高了效率,而且可靠性得到了保障。因此,组态软件又称为“二次开发软件”。组态软件的这一特性是以牺牲它的“全面性”和“灵活性”为代价的,它是一种专业化的软件,类似于AutoCAD、PhotoShop、QQ、WPS、Foxmail等应用软件,用于诸如电力、石油、化工、冶金、环保、煤矿、配电、热网、电信、能源管理、水利、污水处理、铁路隧道信号监控、食品饮料自动化、制药医疗等行业,方便用户根据软件提供的驱动、链路、协议、工具、图形和策略等基本要素快速组建起对工程项目的监测与管理,为了提高灵活性,还提供了编程手段,如Basic、VC++等内置编译系统。参考二维码视频讲解。

目前,国内外流行的组态软件较多,图1-3以时间为序给出了国内外常用组态软件的发展情况,自从1969年美国数字设备公司为通用公司生产了世界上第一台可编程逻辑控制器(Programmable Logic Controller,PLC)以后,各公司相继开发出各自的PLC硬件设备与配套控制程序,但是随着集散控制系统(Distributed Computer System,DCS)的发展,需要将控制软件与硬件分开,形成通用的组态软件,20世纪末,该类软件如雨后春笋般蓬勃发展起来。例如,国产的组态软件有北京三维力控科技有限公司的力控(ForceControl)、北京亚控科技发展有限公司的组态王(KingView)、北京昆仑通态自动化软件科技有限公司的MCGS、北京世纪长秋科技有限公司的世纪星、紫金桥软件技术有限公司的紫金桥(Realinfo)等。国外的同类产品包括:Intellution公司的iFIX、GE公司的Cimplicity、Wonderware公司的InTouch以及Siemens公司的WinCC、悉雅特集团的Citect、艾斯苯公司的ASPEN-tech、意大利自动化软件供应商PROGEA公司的Movicon等,表1-1列出了常用组态软件的特色及应用领域。

图1-3 国内外常用组态软件产生时间趋势图

表1-1 国内外常用组态软件列表

组态软件形形色色,为什么选择MCGS作为研究对象开展本书的讨论呢?

大家知道,天下没有免费的午餐,WinCC、ForceControl、KingView等组态软件在使用过程中会根据用户的使用量以及使用条件进行收费,而MCGS嵌入式组态是软硬合一的,即只要购置了硬件触摸屏,其软件是赠送的,节省了初期开发费用和产品成熟后的推广使用费用。可参考二维码视频讲解。

另外一点,也是本书要阐述的重点,即“串口通信”,与组态软件相关联的硬件多为昂贵的PLC、智能仪表、变频器、打印机等设备,但是很多外围传感器或控制器都具有串行通信接口,用户往往只需几十元便可解决问题,尤其是微小型仪器,具有像大型工程一样的数据采集与控制功能,但是又无法承受高额的费用支出。因此,需要通过串口与外部设备进行通信,这样,串口通信的规范便成了所有组态软件的薄弱环节。目前,仅有部分产品的串口采用标准指令规范,但价格也相应较高,而大部分低廉产品只提供了TTL或RS-232协议,形式各样,变化多端,一台仪器可能出现几种不同的协议标准,为项目开发或仪器研制增加了困难和阻力。虽然组态都声称具有灵活性,提供了硬件驱动和脚本语言方便用户拓展,但是,对于五花八门、形形色色的串口接口产品,组态无法实现一一匹配,这一工作必须由用户来完成,而用户又不能像组态软件的开发人员一样专业,这就造成了“用户有需求但不专业”和“开发者专业但不懂需求”的矛盾,需要一个中间纽带来完成,毫无疑问,本书的目的就是要承接这一功能,而MCGS恰恰具有灵活的脚本命令与串口操作指令,适于培养专业化的用户。

MCGS包括网络式、通用式和嵌入式三种版本,本书侧重应用广泛的嵌入式触摸屏,能够满足大量用户的需求,有助于微小型仪器设备的研发。

登录北京昆仑通态自动化软件科技有限公司官网http://www.mcgs.com.cn,从“下载中心”下载“MCGS_嵌入版7.7(01.0001)完整安装包”,解压后安装到“D:\MCGSE”目录下。安装完毕后,Windows 操作系统的桌面上添加了如图1-4所示的两个快捷方式图标,“MCGSE组态环境”用于对嵌入式MCGS工程进行设计和开发,而“MCGSE模拟运行环境”是对设计好的工程进行运行检验与调试,前者是开发环境,后者是模拟运行环境。参考二维码视频讲解。

图1-4 MCGSE组态环境与模拟环境快捷方式图标