计算机监控系统仿真开发实验室的创建与教学应用研究

2015-03-14 09:05汪文彬马玉春
海南热带海洋学院学报 2015年2期
关键词:校验码通信协议C语言

孙 冰,汪文彬,马玉春

(琼州学院 海南省嵌入式系统重点实验室,海南 三亚 572022)



计算机监控系统仿真开发实验室的创建与教学应用研究

孙 冰,汪文彬,马玉春

(琼州学院 海南省嵌入式系统重点实验室,海南 三亚 572022)

提高教学质量,培养应用型人才是当前我国高等教育办学的主要目标之一.本文以通用计算机房为载体,结合自主知识产权的模块仿真软件搭建可裁剪的计算机监控系统仿真开发平台,综合了计算机导论、汇编语言、C语言、.NET程序设计、计算机接口技术、计算机网络、数据库系统等专业平台课的内容,将各种理论知识应用到实际的项目中,从不同的角度实现相关技术,强化理论与实践的结合,在不增加课时的情况下,使得学生熟练掌握计算机监控技术,从而实现教学质量的提高.

计算机监控;RS-485;数据处理;教学应用

0 引言

《国务院关于加快发展现代职业教育的决定》指出,职业教育要服务经济社会发展和人的全面发展,推动专业设置与产业需求对接,课程内容与职业标准对接,教学过程与生产过程对接,毕业证书与职业资格证书对接,职业教育与终身学习对接.重点提高青年就业能力.要大力宣传高素质劳动者和技术技能人才的先进事迹和重要贡献,引导全社会确立尊重劳动、尊重知识、尊重技术、尊重创新的观念,促进形成“崇尚一技之长、不唯学历凭能力”的社会氛围,提高职业教育社会影响力和吸引力.扩大优质教育资源,激发学校发展活力,促进职业教育与社会需求紧密对接.支持一批本科高等学校转型发展为应用技术类型高等学校[1].

教育部新办本科院校合格评估方案中要求教师队伍中硕士、博士比例大于50%,这在目前我国每年硕士、博士毕业生大量增加的情况下不难做到.然而,比学历更重要、也更难解决的是教师的实践经历和能力.现在的青年教师,无论是硕士还是博士,都普遍缺少实践经历,而光靠书本知识是不可能培养出高质量应用型人才的.所以新建本科院校的教师队伍建设,不仅要追求高学历,更要追求“双师型”,一定要通过多种渠道,尽快为中青年教师补上实践经历这一课,使更多的教师真正成为“双师型”[2].

计算机监控系统集成了计算机软件、硬件和信息通信系统,综合了计算机相关专业数据处理的基础知识、C语言程序设计、.NET程序设计、数据结构、计算机接口、计算机网络、数据库系统、移动通信等知识,适用专业广,而且,这些知识的获取,其时间跨度大,因而,对计算机监控系统研发学习,可以贯穿于计算机相关专业的整个学制,融入各门具体的课程,使得学生学有所用,可以有效提高学习兴趣,并使得他们在毕业时即可获得工程项目经验.跟教育部合格评估的要求“提高教学质量,培养应用型人才”不谋而合.而且,任课教师通过研究和实际研发计算机监控系统,可以有效成为双师型教师.

本文以现有通用计算机房为基础,通过自主知识产权的仿真软件搭建可裁剪的仿真计算机监控系统平台,并提供软件开发包和测试工具,除计算机外无需任何设备成本即可创建仿真开发实验室,用于行业技能培训和综合知识的实践.

1 计算机监控系统的特点与主要技术

计算机监控系统是以监测控制计算机为主体,加上检测装置、执行机构与被监测控制的对象共同构成的整体.在这个系统中,计算机直接参与被监控对象的检测、监督和控制.检测主要是通过传感器和相应的输入模块来取得被监控对象的状态数据,监督主要是对状态数据进行分析后给操作员提供手动操作的参考,控制则是手动或按照一定的策略自动地对被监控对象执行相应的操作[3].

工业控制总线RS-485在计算机监控系统中应用较多,因为这种总线结构联网方便,简单可靠,传输距离可达1200米,文献[4]中的井下多级机站通风监控系统就采用了RS-485总线.随着网络技术的发展,采用网络接口RJ-45的模块逐渐增多.监控用的计算机一般称为主控机(或上位机),各种检测与控制模块或嵌入式系统一般称为受控机(或下位机).

主控机软件一般采用可视化高级语言(如.NET)进行开发;受控机软件没有软件界面,仅实现相关的逻辑功能,一般采用C语言、汇编语言和梯形图等进行开发,通过调试后,再下载到受控机系统中.主控机可通过RS-485或者RJ-45接口与受控机通信,进行数据的查询与命令的发送.各种控制策略、设备的状态等的保存,都需要使用数据库技术.有时,为了使用方便或者架设有线比较困难,还需要使用无线通信技术来传输数据或者进行短信报警.

因而,实现一个计算机监控系统,需要综合使用多种相关专业知识,利用计算机监控技术作为计算机专业实践训练的主线,可以较好地培养学生知识的综合应用能力,而且,学有所用,可以有效提高学生的学习兴趣.

2 计算机监控系统中的主要通信协议

没有信息通信系统,计算机监控系统就不能完成系统内部和系统外部的信息传输.所谓的信息通信,可以简单地理解为“有特定意义”的字节数据的发送和接收.双方通信必须遵循的规范就是所谓的通信协议,如下所示是通信协议的常用格式:

前导字符,地址码,功能码[,数据字节][,校验码][,结尾码]

相同厂家或类型的模块往往有相同的前导字符;地址码一般为一个字节长度,是对一条数据总线上的设备标识,就象IP地址是对网络计算机的标识一样;功能码表示这条协议是读取对方模块中的数据,还是发送控制命令等,如果是返回的状态查询协议,一般会跟若干数据字节;校验码用来检查所发送或接收的数据是否正确;结尾码是协议结束的标志.对方收到此协议后,首先对协议进行检查:前导字符、地址码、校验码与结尾码是否正确,如果错误,就不予理睬;如果正确,就开始检查功能码,根据功能码做出相应的处理.

按照协议的表达来分,有字符型协议与字节型协议.字符型协议便于接收显示,但是,需要转换为相应的字节,才能提取其中的数据.例如,下一节介绍的DCON协议就是一种字符协议[5],读取模块的命令为:

$ 01 6 BB (CR)

其中“$”为前导字符,“01”为地址码,“6”为读取模块数据的功能码,“BB”为累加和校验码,是“$016”四个字符的ASCII码累加取低字节得到0xBB,然后再转换为对应的字符串“BB”,CR为回车符,对应字节0x0D.主控机在发送命令的时候,需要将校验码转换为字符串,同样,主控机在收到受控机响应数据的时候,也需要将字符串形式的数据转换为对应的字节,才能进行处理,如位测试,用于判断开关是否闭合或断开.

无论是主控机还是受控机,校验码的计算,数据的位操作处理等环节,都需要进行计算,主控机资源比较丰富,可以采用.NET类的开发工具或者Java技术.但是,受控机系统需要采用C语言或汇编语言来实现,相对繁琐一些.

3 实验平台的搭建

每所高校都有通用计算机房,为了便于安排全国计算机等级考试,计算机都要通过交换机连接在一起,这些计算机可以用于计算机基础和计算机相关专业的软件开发的教学实践.每台计算机一般都有网口和USB接口,插上一个“USB/RS-485”转接口(40元以内即可),即可构建工业控制RS-485总线网络.

I-7065D模块是跨国企业集团台湾泓格公司的产品,采用RS-485接口,DCON通信协议,配有5路继电器输出(可外接指示灯作为输出控制对象),4路开关量输入(采用光电传感器采集输入数据).这里采用I-7065D模块仿真软件[6]来进行教学工作.如图1所示即是仿真软件的原理图,中间粗线框为模块的平面实物图,【输入/输出】指示灯根据状态变化进行动态显示,用红色圆形图片表示灯亮,用原始灰色圆形背景表示灯灭;输出开关也进行动态显示,如果输出开关闭合,则在输出开关的两个接线端子之间显示一条红线,否则隐藏红线.

图1 1-7065D仿真模块原理图

图1下半部分的光电传感器、开关电源、初始化(连线)、RS-485接口都是实物图片,通过点击复选框连接到I-7065D.I-7065D加电后,鼠标在光电传感器的信号采集部分移动,鼠标指针变为手指的形状,表示有输入信号;离开敏感区域,则表示没有输入信号,输入信号与输入指示灯的变化相对应.

I-7065D有4个光电传感器,在实际操作中,可以随机遮挡其中的一个或者几个,为了模仿该动作,设置3种“输入切换”模式,在“手动”模式下,只有当鼠标移动到光电传感器的敏感部位才产生信号变化;“自动”模式下,用照片随机遮挡0-4个传感器;“锁定”模式下,鼠标移动到光电传感器的敏感区域,即在该区域显示一张照片(遮挡光电传感器).由于引入了“输入切换”功能,I-7065D模块仿真软件用于教学更加方便.

在仿真模块软件的主界面上,还显示查询和控制I-7065D模块的DCON协议,这样就不需要查询产品说明书.由于通信是真实的,I-7065D仿真模块软件的通信协议和内部控制逻辑与实物模块的都一致,因而,监控仿真模块的软件一样可以监控实物模块,不需要修改任何代码.另外,本实验平台还设计了I-7013D仿真模块,可以通过温度传感器采集温度数据,与I-7065D属于同一系列,也使用DCON通信协议.

利用I-7065D和I-7013D模块仿真软件,即可搭建可裁剪的计算机监控系统仿真开发平台,每台计算机通过“USB/RS-485”转接口充当一个I-7065D或I-7013D模块,主控机(另一台计算机充当)可以监控一个仿真模块,也可监控若干个仿真模块或者两种仿真模块的组合.如图2所示,每个粗线框都表示一台计算机,主控机监控3个仿真模块.对于信号的变化,主控机可以通过E-mail转短信的方式进行报警,也可通过外接短信猫直接发送短信进行报警.由于主控机与仿真模块之间的通信是通过RS-485网络进行,因而,为了远程查看模块状态,可以用一台计算机充当RS-485/TCP转换接口,这样,即可通过远程机了解模块的状态,报警功能也可在远程机上实现.

图2 系统架构实例

在监控系统的研发中,需要进行各种测试,本实验平台还准备了基于RS-485和TCP客户机的“通用多功能计算机监控系统测试软件”、各种辅助工具和演示软件,以及关于Visual Basic 2010版本的主控机软件包及基于C语言的受控机软件包,可以用来快速研发和测试计算机监控系统.

4 教学模式的具体实现

计算机监控系统综合了计算机专业的多门主干课程,可以将计算机监控技术有效融入各个教学环节中,介绍本门课程中的知识点在计算机监控系统中所起的作用,通过实际的计算机监控系统激发学生的学习兴趣,让学生看得到自己的进步.在新生入学教育中,可以向学生介绍创新平台的基本功能与应用,让学生操作创新平台,产生感性认识.

4.1 计算机导论中的应用

不同的数据采集和控制模块经常有不同的编码方式,为了跟这些模块打交道,就必须采用其认可的编码方式,因而,掌握字节、16进制字符串、字符的ASCII码、汉字的Unicode编码(可用于中文短信编码)的基本概念及其相互转换,就为数据处理打下良好的基础.

“与”、“或”、“非”、“异或”是编程实践中的基本条件判断和计算思维的重要基础.在计算机监控系统中,通常用二进制数1和0来表示开关的状态,因而,1个字节可以表示8位开关的状态,通过“与”运算可以用来测试开关的状态,通过“或”运算置位,通过“非”运算取反,通过“异或”运算测试开关是否发生变化.

计算机导论是计算机相关专业的第一门专业基础课程,将编码与位运算知识点跟计算机监控系统结合起来,讲授变得具体而有针对性,在考试中适当加大字节编码和两个字节的位运算所占分数,将可以有效引导学生的学习,而并不占用任何额外的教学时间.

4.2 C语言和汇编语言的应用

C语言是计算机专业的一门基础课,也是理工类非计算机专业学习计算机语言、建立和培养编程思想与程序语言能力和素质的基础课程.C语言与其它高级语言相比有其显著的优点,它既具有高级语言的特点,又具有低级语言的许多特点,广泛应用于嵌入式系统、单片机系统及物联网系统集成中.

在计算机导论课程中学习了字节编码与两个字节的位运算的基本概念,在C语言中可以适当扩展,引入通信协议的概念.可以利用C语言设计异或校验码的生成程序,即对给定的一批字节,计算其异或校验码;对于含异或校验码的一批字节,编写子程序检查其是否正确.同理,可以编写其它校验码处理程序.还可以设计对一个字节进行位测试、置位与复位的子程序以及编码实现的子程序,在此基础之上,进一步讲解在一个C语言项目中集成子程序的方法.学生如果掌握了这些方法,就基本掌握了用C语言开发受控机软件的主要技术.

汇编语言是符号化了的面向机器的语言,用C语言实现的操作,都可以用汇编语言来实现.相同的功能,可以比较两种语言所编写的源代码,所编译完成的应用程序的大小,由此可以观察程序运行的效率.通过C语言和汇编语言的强化,数据处理的技术必将得到良好的提升,可为后续的计算机组成原理课程的学习奠定汇编语言基础.

4.3 计算机接口技术的应用

RS-485接口和RS-232接口的编程相似,不但广泛应用于计算机监控系统中,而且,物联网系统中也广泛采用.在计算机接口中讲解“串行通信技术”时,可以分别通过C语言和汇编语言设置串口参数,对串口进行初始化,然后,发送字节数据,读取I-7065D的状态数据,控制输出开关的变化.这里就用到了字节编码、位运算、通信协议的处理等知识点.在数据传输过程中,会发现字节流不连续,这就涉及到数据的可靠接收问题.可以借助通用多功能计算机监控系统测试软件[7]观察数据的收发,不断改进通信程序的可靠性.4.4 计算机网络的应用

在C语言、汇编语言,以及计算机接口技术中都涉及到RS-485通信的字节数据流,这就是串行通信协议,通过此协议,可以自然过渡到TCP/IP协议.串行通信协议中主要采用异或、累加和与循环冗余校验码,而TCP/IP协议采用累加求补校验码,前导课程所学的串行通信协议与校验码的处理,对计算机网络课程是一个很好的铺垫.

图2中的“RS-485/TCP”协议转换软件,在网口端,该计算机既可以服务器方式工作,等候远程客户机的连接;也可以客户机的方式工作,主动连接到远程服务器,从而实现串口数据到网口数据的透明传输.文献[3]中设计了TCP客户机和服务器类,可以用于快速开发客户机与服务器软件.

4.5 数据库与.NET的应用

数据库主要用于存储控制策略、通信协议及设备的状态数据、报警记录等.主控程序可以使用.NET框架中的Visual Basic快速开发版来实现,这种开发工具可以方便地调用数据库,实现各种编码与位运算以及完善地解决串行通信方案和网络通信方案.

5 结语

计算机监控系统仿真开发实验室以现有通用计算机房为载体,结合自主研发的I-7065D开关量输入与输出模块仿真软件和I-7013D温度采集模块仿真软件,通过“USB/RS-485”转接口和现有TCP网络设施,即可搭建可裁剪的基于工业控制总线RS-485网络和TCP网络的混合结构的计算机监控系统,将多门计算机专业的主干课程用于工程实践.实验条件无需硬件设备,因而,学生可以在宿舍自主学习计算机监控技术.为了更好地提升教学效果,高校可以设置小批量的实物实验室,以加深学生的感性认识,为更好地宣传和利用仿真模块做好铺垫.

[1]国务院.国务院关于加快发展现代职业教育的决定(国发[2014]19号) [EB/OL]. (2014-06)[2014-11-10].http://www.moe.edu.cn/publicfiles/business/htmlfiles/moe/moe_1778/201406/170691.html.

[2]教育部高等教育司.提高质量 内涵发展——全面提高高等教育质量工作会议文件汇编(2012年)[M].北京:高等教育出版社,2012.

[3]马玉春.计算机监控系统的仿真开发[M].北京:国防工业出版社,2015.

[4]贾安民.井下多级机站通风监控与节能技术研究[J].金属矿山,2012(6):113-119.

[5]孙冰,汪文彬,马玉春.一种DCON协议通信的快速处理方法[J].琼州学院学报,2014,21(5):26-29.

[6]马玉春.I-7065D模块仿真软件:中国,2014SR069070[P].2014-05-29.

[7]马玉春.通用多功能计算机监控系统测试软件:中国,2011SR025314[P].2011-5-3.

Teaching Application of Simulated Laboratory on Computer Monitoring System

SUN Bing, WANG Wen-bin, MA Yu-chun

(Hainan Key Laboratory of Embedded Systems, Qiongzhou University, Sanya Hainan, 572022, China)

To improve the quality of teaching and train application-oriented talents is one of the main goals of Chinese higher education at present. In this paper, a simulated platform of computer monitoring system is constructed based on general computer laboratory, which theory can be integrated into many subjects such as introduction to computers, assembly language, C language, .NET programming, computer interface technology, computer network, database system etc. without adding any burden to students. Finally, engineering technology of computer monitoring is mastered and quality of teaching is improved by practice the platform.

computer monitoring; RS-485; data processing; teaching application

2014-11-10

海南省自然科学基金项目(613170);三亚市院地科技合作项目(2013YD29)

孙冰(1974-),女,湖南隆回人,琼州学院电子信息工程学院助理实验师,研究方向为Web技术与计算机监控系统应用.

马玉春(1969-),男,江苏南京人,琼州学院电子信息工程学院教授,博士,研究方向为计算机监控技术.

TP311.5

A

1008-6722(2015) 02-0118-05

10.13307/j.issn.1008-6722.2015.02.25

猜你喜欢
校验码通信协议C语言
Basic UDI校验码算法
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
基于C语言的计算机软件编程
基于Z-Stack通信协议栈的红外地温采集电路设计
高职高专院校C语言程序设计教学改革探索
基于Excel实现书号校验码的验证
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
基于FPGA的循环冗余校验码设计