为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

NTP网络时间服务器与PC上位机组态软件的通信

2019-02-22 27页 doc 72KB 20阅读

用户头像

is_637320

暂无简介

举报
NTP网络时间服务器与PC上位机组态软件的通信NTP网络时间服务器与PC上位机组态软件的通信 *** (信息与电气工程学院,电气工程及其自动化,***) 摘 要:本文利用MCGS组态软件实现了NTP网络时间服务器与PC机之间的通信。NTP服务器通过串口向PC机发送时间数据包,PC机串口接收后实时显示当前时间。文中首先简单介绍了NTP网络时间服务器的由来作用以及工作方式,然后重点介绍MCGS组态软件。包括MCGS的功能特点工作原理,如何新建一个工程,如何实现动画显示、定义实时数据库、构思运行策略、编写脚本控制、设计主控菜单等。并引入了MCGS脚本驱动开发工具包,详细介绍了...
NTP网络时间服务器与PC上位机组态软件的通信
NTP网络时间服务器与PC上位机组态软件的通信 *** (信息与电气工程学院,电气工程及其自动化,***) 摘 要:本文利用MCGS组态软件实现了NTP网络时间服务器与PC机之间的通信。NTP服务器通过串口向PC机发送时间数据包,PC机串口接收后实时显示当前时间。文中首先简单介绍了NTP网络时间服务器的由来作用以及工作方式,然后重点介绍MCGS组态软件。包括MCGS的功能特点工作原理,如何新建一个工程,如何实现动画显示、定义实时数据库、构思运行策略、编写脚本控制、设计主控菜单等。并引入了MCGS脚本驱动开发工具包,详细介绍了如何利用脚本驱动开发工具包编写本工程的脚本驱动程序,以及把写好的脚本区工程序导入到组态工程的详细过程。文中有操作画面截图,使叙述更直观明了。通过以上介绍详细说明了在MCGS组态软件中实现NTP网络时间服务器与PC上位机的通信方法。 关键字:NTP时间服务器;mcgs组态软件;脚本驱动开发工具包;设计编程 The Communication of NTP Network Time Server and PC Upper Unit Configuration Software Abstract:This paper on MCGS software realize the network time server and NTP of communication between the PC.NTP server through a serial port to PC send time data packets, PC serial after receiving real-time display the current time.This paper briefly introduces the network time server NTP the origin of the function and way of working, then the key introduction MCGS software. Including the function characteristic of the working principle MCGS, how to create a new project, how to achieve animation display, definition of real-time database, conceiving the operation strategy, scripting control, main control menu design, etc. And introduces MCGS script driver development kit, detailed introduces how to use the script driver development kit to write this project script driver, and the written script area engineering sequence imported into the configuration of the detailed engineering process.There are operating screen screenshots, make the narrative more intuitive and clear. Through the above is introduced in detail the MCGS software realize the network time server and NTP PC PC communication method. Key words:NTP time server;mcgs;Script driver development kit;Design & Programming 1 引言          随着现代技术的不断发展,尤其是工控领域自动化技术的日益提高,组态软件的应用越来越广泛。MCGS组态软件凭借操作简便、画面丰富、控制灵活等特点越来越受欢迎。我们便想利用MCGS实现一些功能,借此机会好好学习开发MCGS组态软件。刚巧实验室有NTP模拟时间,可利用MCGS编写一个接受NTP发送过来的时间数据包并显示的组态工程,本课题的就这样被提出来了。网络时间同步在国内外要求严格使用广泛,研究本课题可实现局域网内多台机器同一时间的目的,在机房、广场显示时钟等都可广泛的应用。MCGS中有自带的使用较为广泛的脚本驱动程序,但本课题要研究的项目目前很少有人研究,脚本驱动程序没有范本,只能自己编写。脚本程序较为复杂,编写并不容易,好在MCGS退出了一套脚本驱动开发工具包,利用此开发工具包的新建程序向导功能能较为轻松实现脚本驱动程序的编写,使本课题得以顺利完成。通过本课题的研究,对NCGS有了深入了解,了解到组态软件的强大功能。  图 1.1 流程图 2  NTP网络时间服务器简介 美国D.L.Mills教授发明的Network Time Protocol(NTP)是从时间协议、时间戳消息以及时间戳选项发展而来。它可估算计算机之间的时钟偏差,传递统一时间,使网络中的计算机实现时间同步。它能保持时间精确度在广域网上为数十毫秒,局域网上则为亚毫秒,在专有的时间服务器上能达到更高的精确度。从80年代提出到现在已经发展了20年,更新公布了多种,2001年推出的NTPv4精确度已经达到了200毫秒,SNTP(简单的网络时间协议)已达到秒级精度的。当前几乎所有的授时网站都是基于1992年公布的NTPv3网上时间传递格式。 NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。 网络时间服务的实现方式主要有无线时钟、时间服务器、局域网内同步三种方式。本课题是用的是局域网内同步方式。 网络时间服务Net Time Service是指能提供网络时间服务的计算机,它可通过GPS卫星信息来获取时间,本文主要实现一台计算机通过网络获取上级时间服务器提供的标准时间,再服务于本单位的局域网,使一个单位的所有计算机都能与标准时间保持同步,时间误差小于0.5秒。 3 MCGS组态软件 3.1 组态软件概述 组态软件,又称监控组态软件—即Supervisory Control and Data Acquisition(数据采集与监视控制)。是专门用来进行数据采集和过程控制的软件工具,处在自动控制系统监控层一级的软件平台和开发环境,可以按照用户需求用各种组态方式快速构建工业自动控制系统监控功能。 组态软件有着很广泛的应用领域,比如电力系统、给水系统、PLC控制、石油化工等领域中的数据采集、监视控制和过程控制等。 本课题所用到的组态软件为北京昆仑同台自动化软件科技有限公司开发的MCGS组态软件。MCGS分类精细,有嵌入式版、通用版和网络版,用户可根据需要选择适合版本。MCGS带有免费开发环境,可为用户节约成本。同时报表和报警功能可以让MCGS很方便在短时间内完成各种报表,及时准确的显示报警信息。最重要的是MCGS具有在同类软件中最好的网络功能,网络版支持瘦客户机机制。本课题要用NTP网络服务器传输时间,这一点是选择MCGS最重要的原因之。MCGS具有远程通讯功能,可以通过本地Modem、公用电话网、远端Modem来监控远端设备,可以很轻松的实现多台局域网内PC机时间同步问题。MCGS提供开放的驱动程序界面和部分驱动程序源代码,可以方便的编写特定的设备驱动程序,完成课题要求。此外,NMCGS具备完善的客户服务和技术支持网络,提供本地化的客户服务和技术支持。 当然,MCGS同其他组态软件相比还是存在一些缺陷的,比如进入市场相对较晚;市场影响力还不是很大;图形界面不够丰富;设备支持不多;软件版本不太固定等。但这些在本课题中影响并不是很大。所以本课题最终选择使用MCGS组态软件来实现NTP网络时间服务器与PC上位机组态软件之间的通信[1]。 3.2  MCGS组态软件及其工作原理简介 3.2.1 MCGS简述 MCGS(Monitor and Control Generated System)即“监视与控制通用系统”,是一套基于Windows平台的,用于快速构造和生成上位机监控系统的组态软件系统,为工业过程控制和实时监测领域服务。它能够在 Microsoft 的32位 Windows 平台上运行,能够采集现场数据、处理实时数据和历史数据、实现报警、增加安全机制、控制流程、显示动画效果、制作趋势曲线和输出报表等,还能实现企业监控网络功能。在工业控制领域有着广泛的应用。 3.2.2 MCGS 的系统构成 MCGS 软件系统包括组态环境和运行环境两个部分。组态环境相当于一套完整的工具软件,可以根据用户需求设计自己的应用系统,是生成用户应用系统的工作环境,建成的工程默认保存在MCGS目录的Program子目录中。在组态环境中可以完成动画设计、设备连接、编写控制流程、编制工程、打印报表等流程工作,生成组态结果数据库;运行环境是一个独立的运行系统,它按照组态环境组构造的组态工程以用户指定的方式进行各种处理,完成用户组态设计的目标和功能。文件也存放在Program子目录中。简单来说,即是:组态环境下编写流程程序,运行环境下运行监控[2]。 组态环境与运行环境一起,构成了用户应用系统,统称为“工程”。组态环境和运行环境既互相独立,又密切相关。如下图3.1。 图 3.1 组态环境与运行环境 3.2.3 MCGS 软件组成  MCGS组态软件由五大组成部分——主控窗口、设备窗口、用户窗口、实时数据库和运行策略。 主控窗口:主控窗口是工程的主窗口或主构架,主控窗口内可放置一个设备窗口和多个用户窗口,负责调度和管理这些窗口的打开或关闭。    设备窗口:用来连接和驱动外部设备的工作环境,将系统自带的或自己编写的脚本驱动程序添加到工程中,并设置设备属性,建立通道连接,以完成数据采集和控制输出设备; 用户窗口:用来设计工作画面,是主要显示窗口,生成各种动画显示画面、数据图表、曲线图表、输出报警等,形象直观的表达出控制流程或结果。 实时数据库:是工程中各部分数据交换的中心,MCGS中所用到的变量都要在此处定义,并设至相应的属性、注释。与工程画面等多个模块建立连接,把工程的各个部分连成一个整体,数据相关相通。 运行策略:用来完成工程运行流程的控制,在此处编写控制程序或是选用各种功能构件,来完成工程中各种不能用画面来完成的操作。运行策略相当于控制程序[3]。 3.2.4  MCGS的工作方式概述 3.2.4.1 MCGS如何与外部设备进行通讯    MCGS要与外部设备进行数据交换就必须用到设备驱动程序,用设备驱动来采集数据、发送指令。设备驱动程序一般是由VB或VC语言编写,生成DLL(动态连接库)档。程序中用各种函数实现MCGS组态软件读取串口命令、发送数据等操作。具体程序在第五章会有详细描述。简单说来,设备驱动程序就是采集或发送设备运行状态的特征数据,以实现组态软件与外接设备的数据交换。在运行环境中MCGS组态软件才会调用相应的设备驱动程序,将数据传送到工程各部分,完成整个系统的通讯过程。各个驱动程序间互不干扰,独占一个线程。 3.2.4.2MCGS如何产生动画效果 每一种基本图形元素在MCGS中都被定义了不同的动画属性,比如一个多边形的动画属性有大小变化、可见度等,每种动画属性都会伴随一种动画效果。动画属性实际上就是反映图形的大小、位置、颜色、可见度等状态的特征参数。但是,组态环境中生成的画面都是静止不动的,怎样在工程运行中产生动画效果就是我们需要解决的一个重要问题。要解决这个问题,我们需要建立动画连接。在图形的每一种动画属性中都可以设定一个与图形状态相联系的数据变量作为“表达式”,连接到实时数据库中,以此来建立各个模块的对应关系,即:动画连接。当测控对象的各变量(如:水位高低等)发生变化时,设备驱动程序会将变化的数据采集到实时数据库的变量中,该变量又与动画属性建立了相关性,图形的状态就会随测控对象的变化而产生相应的变化。由于现场数据是被连续采集进来,所以会产生逼真的动画效果。用户也可采用自行编写程序的方法来控制动画界面,以达到满意效果[4]。 3.2.4.3 MCGS如何实施远程多机监控 MCGS提供了一套完善的网络机制,可通过Modem网、TCP/IP网和串口网等把多台局域网内的计算机连接到一起,构成分布式网络监控系统,实现一台总机控制局域网内多台PC机各种数据同步和网络事件的快速传递。同时,MCGS提供的网络功能还可以使在工作站上直接对服务器中的数据库进行读取或写入操作实现。MCGS各种网络形式,以父设备构件和子设备构件的形式,用户可自行调用,并要设置父设备和子设备的工作状态、端口号、工作站地址等属性。 3.2.4.4 MCGS如何对工程运行流程实施有效控制 MCGS 利用“ 运行策略 ” 对工程的运行流程进行有效控制。MCGS 设有撞门用来控制工程流程的“运行策略”窗口,用户可在此窗口根据需要灵活建立自己的运行策略。运行策略窗口提供各种不同的功能构件,用户可根据需要灵活选用,对各功能构件进行配置和属性设置,最终生成功能各异的功能模块,即“ 用户策略 ” ,确保系统按照用户设定的流程顺序和各种条件对实时数据库进行各种操作控制,从而实现达到任意切换动画窗口、控制设备工作状态、控制系统运行流程的结果。 3.3 MCGS工程建立的一般流程 工程项目系统分析:新建一个工程项目必须先对工程项目的系统构成、技术要求和它的工艺流程进行分析,弄清楚测控对象的特征、系统的控制流程,明确工程监控要求,构思动画显示方式,设计动画显示画面,分析实时数据库变量与设备采集、输出通道之间的对应关系,分清哪些变量是要求与设备连接在一起的,哪些变量是软件内部用来传递数据及动画显示的。 NTP网络时间显示工程所用变量有17个,接收信号并显示,构造一个用户窗口即可满足要求,脚本驱动需要自己编写,(脚本驱动详见第五章)。 工程立项搭建框架:MCGS工程框架包括定义工程的名称、封面窗口和启动窗口的名称。一般打开工程后,首先显示封面窗口,当封面窗口退出后显示启动窗口,可在窗口属性中设置某个窗口为启动窗口。要在运行策略中设定好动画刷新周期。 NTP网络时间接收显示工程为了显示简便有效、效果清晰,没有建立封面窗口和退出窗口,工程启动运行即可进入组态的动画显示画面,效果直观有效。要退出工程直接点击“退出”即可。 设计菜单基本体系:一般要在主控窗口内编制菜单,用来控制和运行状态。菜单编写分两步:(1)搭建菜单框架(2)对各级菜单命令进行功能组态。组态时,根据工程需要,可以随时增加或删除菜单内容,不断完善工程的菜 单。本工程设计菜单较为简单,如图3.2。 图 3.2 主控窗口 制作动画显示画面:动画显示画是用来形象直观显示工程结果的。要先画一个静态显示画面,利用MCGS提供的各种图形及动画构件库,“组合”成需要的画面。然后需要设置动画属性,使图形与实时数据库中定义的变量建立相关的连接关系。 编写控制流程程序:控制流程可控制运行流程,运行策略窗口的策略构件箱中提供有丰富的功能策略构件,用户根据需要选择合适的策略构件,构成各种功能模块(称为策略块),控制运行流程。在此也可编写简单的脚本程序添加到“脚本程序”策略中,使控制更为灵活方便[6]。 完善菜单按钮功能:包括菜单命令、监控器件、操作按钮的功能组态;实现历史数据、实时数据、各种曲线、数据报表、报警信息输出等功能;建立工程安全机制等。 编写程序调试工程:调试程序会产生模拟数据,用模拟数据来工程设置是否正确。 连接设备驱动程序:在设备窗口内选择设备驱动构件,设置设备属性。已达到与外界设备连接的目的。 工程完工综合测试:工程设置完成后要对工程各部分进行测试,检查是否有误[7]。 通过对NTP网络时间接收显示工程的整体分析、,由于本组态工程只需显示接收到的数据,所以只设置一个用户窗口(NTP网络时间显示)用来显示接收数据即可。17个数据变量,即对应17个通道。 由于MCGS自带的驱动不能满足本工程的需要,本工程所用设备驱动程序是使用MCGS脚本驱动开发工具由MCGS脚本语言自行编写的脚本驱动程序。 MCGS脚本驱动开发工具及脚本程序将在第五章介绍。 4  新建MCGS组态工程 4.1 工程要求 异步通讯: 串列传输速率9600,无校验位,数据位8位,停止位1位 协议: 数据格式为数据串,16进制表示共17个位元组 格式如下: AAH,年高两位,年低两位,月,日,星期(低位为星期高位为0),农历月,                          农历日,小时,分钟,秒,倒计时小时,倒计时分钟,倒计时秒,正计时小时,正计时分钟,正计时秒。。。。。。。。。。。。 例如: 此时为2005年06月16日,农历五月初十,星期4,11时05分32秒,倒计时为3时40分20秒,正计时为1时19分40秒 则发送的字数据为: AAH,20H,05H,06H,16H,04H,05H,10H,11H,05H,32H,03H,40H,20H, 01H, 19H,40H 显示为:AA 20 05 06 16 04 05 10 11 05 32 03 40 20 01 19 40                                                                            4.2 工程分析 在开始组态工程之前,先对该工程进行剖析,以便从整体上把握工程的结构、流程、需实现的功能及如何实现这些功能。 工程框架: 一个用户窗口:数据显示 一个主菜单:系统管理 一个子菜单:用户窗口管理 三个策略:启动策略、循环策略、退出策略 数据对象: 年高位、年低位、月、日、星期、农历月、农历日、时、分、秒、倒计时时间、倒计时分钟、倒计时秒、正计时时间、正计时分钟、正计时秒 图形制作: 实时数据:通过输入框引进 注释说明:通过标签实现 流程控制: 通过脚本驱动程序和编写设置循环策略实现,主要由脚本驱动程序实现。 4.3 新建工程 单击菜单中“新建工程”选项,新工程在D:\MCGS\WORK\目录下自动生成。 选择档菜单中的“工程另存为”菜单项,弹出档保存窗口。将新工程名改为“NTP网络时间接收显示”。点击“保存”,新工程创建完毕。 4.4 制作工程画面 4.4.1建立窗口 打开“用户窗口”,点击“新建窗口”,建立“窗口0”。选中“窗口0”,更改窗口属性,窗口名称设为“NTP网络时间显示”,窗口标题为“NTP网络时间显示”,右击“NTP网络时间显示”窗口,在下拉菜单中将此窗口设置为启动窗口。 4.4.2编辑画面 选中“NTP网络时间显示”窗口图示,单击“动画组态”,进入动画组态窗口,开始编辑画面。 单击工具条中的“工具箱” 按钮,打开绘图工具箱。选择“工具箱”内的“标签”按钮,鼠标的游标呈“十字”形,在窗口顶端中心位置拖拽鼠标,根据需要拉出一个一定大小的矩形。在游标闪烁位置输入文字“NTP网络时间数据接收显示工程”,按回车键或在窗口任意位置用鼠标点击一下,文字输入完毕。                          选中文字框,作如下设置: 点击(填充色)按钮,设定文字框的背景颜色为:蓝色 点击(线色)按钮,设置文字框的边线颜色为:没有边线 点击(字符字体)按钮,设置文字字体为:宋体;字型为:粗体 点击(字符颜色)按钮,将文字颜色设为:黄色 选择工具箱中标签按钮,在画面上画出18个大小适宜的矩形,并依次填入文字,如下图。选择工具箱中输入框按钮,在每个标签下面添加一个输入框。与实时数据库建立动画连接后,输入框即可用来显示接收到的数据。 工程显示画面设计如图4.1。 4.5 建立实时数据库 实时数据库是MCGS工程的数据交换和数据处理中心。建立实时数据库其实就是定义数据对象数据对象,包括定义数据变量的名称、类型、初始值和数值范围,确定存盘相关参数值等。 打开MCGS软件,打开已建立好的“NTP网络时间显示”工程,打开工作台中“实时数据库”窗口,里面有系统自建的四个字符型数据对象:INPUTETIME、INPUTSTIME、INPUTUSER1、INPUTUSER2。由于要显示的数据为十六个,须添加十六个数据对象。对象名称依次为年高位、年低位、月、日、星期、农历月、农历日、时、分、秒、倒计时小 图 4.1 NTP网络时间接受显示画面 时、倒计时分、倒计时秒、正计时小时、正计时分、正计时秒。对象属性设置为数据型, 对象初值设为0,最大值设为00,最小值设为99,由于发送的数据不带小数位,故小数位数设为0。可以在注释栏对数据对象添加相应注释。 实时数据库设置窗口如下图4.2。 图 4.2 实时数据库设置 4.6 建立动画连接 4.4中建立的工程画面“NTP网络时间显示”是由图形元素组合而成,是静止不动的,要达到动态效果需要对这些图形对象进行动画设计,用动画形象描述外界的对象变化。要实现动画效果就必须将用户窗口中的图形对象与实时数据库中的数据对象建立相关连接。系统运行过程中,图形对象变化是由数据对象的实时采集值来驱动的。 具体设置步骤如下: [1] 在用户窗口中,双击输入框,弹出输入构件单元属性设置窗口。 [2] 单击“操作属性”标签,点击“对应数据名称”栏下的“?”,从在4.5建好的实时数据库中选择“年高位”,快捷键选择“无”,数据最小值设为“00”最大值设为“99”,点“确认”即建立好了“年高位”的动画属性。按此方法,依次建立十六个数据对象的动画属性。 4.7 设置运行策略 工程要求每50ms刷新一次数据,所以要将循环时间设为50ms。 打开工作台中运行策略窗口,选中循环策略,右击鼠标,选择属性,将策略执行方式选为定时循环执行,循环时间设置为50ms。 4.8 设备连接 设备窗口是设置系统与外部硬设备连接的窗口,通过此窗口的设置实现读取外部设备数据并控制外部设备工作状态的目的。 MCGS组态工程,提供了很多设备驱动,用户可根据需要从中选择,并设置驱动的相关属性,如波特率、停止位、串口、通道连接等。系统运行时,设备构件通过通道连接,向实时数据库对象提供从外部设备采集来的数据,再从实时数据库中查询相关联的对象,吧采集数据发送给系统其他部分,以此实时检测设备工作状态,并自动控制整个过程。 MCGS组态软件提供了大量的工控领域常用的设备驱动程序。使用时可直接添加进工程里。但本工程所用设备驱动MCGS还未提供,需要自己利用MCGS高级脚本驱动开发包编写,具体编写和添加在第五章会详细讲解,在此只描述如何将工程中的可选设备添加到工程里面,并设置其属性,实现连接。 具体步骤: (1)双击在工作台“设备窗口”计入设备窗口。 (2)点击工具条中的“工具箱”图示,打开“设备工具箱”。 (3)单击“设备工具箱”中的“设备管理”按钮。打开设备管理对话框。 (4)在窗口左侧的可选设备列表中,双击“通用设备”,双击“串口通用父设备”即可将“串口通用父设备”添加到右测选定设备列表中;单击“用户定制设备”,双击“新建脚本驱动”,将新建脚本驱动添加进右侧选定设备列表。“新建脚本驱动”即用脚本驱动开发包编写的驱动程序。 (5) 选中选定设备列表中的“串口通用父设备”和“新建脚本驱动”,单击“确认”,即将两者添加到“设备工具箱”中。 图 4.3 设备添加 设置串口备属性: ◆ 双击“串口通用父设备”,将基本属性下的串口端号设为0-COM1,按照工程要求设置通讯串列传输速率为6-9600、数据位位数1-8位、停止位位数0-1位、数据校验方式选择无校验、数据采集方式选择同步采集。 ◆ 双击“新建脚本驱动程序”,点击“通道连接”,在对应数据对象一栏依次输入年高位、年低位等16个数据对象,通道类型与写脚本是建立的通道一致,通讯周期设为1。 这样设备属性即建立好了。到此为止工程建立完毕,连接设备下载工程并运行即可检查运行结果。 5 MCGS脚本驱动开发工具包 MCGS组态软件提供了大量的工控领域常用的设备驱动程序,供用户在需要时直接拿来使用。当提供的驱动不能满足要求时,用户需自己编写脚本驱动程序。 脚本语言是一种语法上类似Basic的编程语言。MCGS常用VB、VC、Delphi等语言来编制MCGS的设备驱动程序。本工程使用了专门用来写MCGS脚本驱动的高级脚本开发工具包来编写脚本驱动程序。使用MCGS提供的脚本驱动开发工具,能够迅速的开发出脚本驱动程序。比VC、VB程序语言更简单、更容易。利用此工具开发脚本驱动可忽略技术细节,也不必理解动态连接库、COM界面等复杂的计算机技术。只需按要求做些简单的属性等设置,利用工程给出的标准函数编写简要的脚本程序,即可完成设备驱动[7]。 5.1 新建一个脚本驱动 MCGS新建一个脚本驱动有两种方法:使用向导新建和不使用向导新建。选择使用向导新建可以根据需要一步步自动生成驱动程序。使用向导新建驱动具体步骤如下:    (1)执行菜单命令档︱新建,系统会显示新建工程模式对话框。 (2)选择使用向导新建立工程,系统会显示脚本驱动生成向导对话框。按要求依次设置配置属性、配置通道、配置通讯帧,并在配置预览里查看配置是否正确。向导设置对话框如图5.1。 图 5.1 向导设置对话框 1  配置属性:设备地址:整数型、默认值为1、属性范围0~255 通讯延时:整数型、默认值200、属性范围99~999 2  配置通道:本工程有十六个数据对应十六个通道,再加一个通讯状态通道,共需要17个通道。通讯状态是系统自带通道,用来判断通讯是否成功。默认值为1时通讯成功,值为2时通讯失败。 点击配置通道,系统默认生成通讯状态和8个默认通道,点击添加通道,添加通道数添8,点确认,即完成通道添加,得到十六个通道,依次将通道名称改为年高两位、年底两位等十六个数据名称(通道名称也可使用默认名称)。 3 配置通讯帧:点击“配置通讯帧”—“添加收发帧”,弹出通讯帧结构信息配置对话话框,在对话框中通讯帧类型选择字节数组(HEX格式)。由于本工程只接受命令不发送命令,故在对话框配置通讯帧一栏,只选择回收帧一栏的帧头和数据体,并设置数据体值为16。点“确认”后回到采集收发通讯帧设置对话框,双击刚添加的发送命令,对帧头和数据体的属性进行设置: 帧头    数据长度:1;数据内容:AA;数据属性设置;无 数据体  数据长度:1;数据内容:空着;解析数据:8位 2位BCD。 16个数据体全部按这个格式设置,操作图如下图5.1.2和5.1.3 图 5.2 帧头设置                  图 5.3 数据体设置 4 配置预览:检查配置是否正确,有误会弹出错误。 (3)点设置完成,即可生成本工程的脚本驱动程序。 注意:每一个脚本驱动的驱动类型是一次性设定的,即只能在新建的时候设定,以后不能再进行修改。 程序如下: '——————————————————————— '驱动脚本:采集函数脚本,MCGS将定时调用这个函数 '这个函数需要完成从设备获取数据,并将数据根据协议 '进行解析,最后赋值到相应通道上的功能。 '这部分是注释,请在下面编辑采集脚本的内容: '——————————————————————— '定义通道索引变量 DIM nIndex as INTEGER            '当前回收数据解析通道的偏移索引 DIM nChlIndex as INTEGER        '当前回收数据解析通道的起始索引 '定义ASCII协议格式命令收发帧使用变量 DIM strSend as STRING            '存放发送命令字符变量 DIM strRec as STRING            '存放接收命令字符变量 DIM strTmp as STRING            '临时字符变量 DIM strData as STRING            ' '定义HEXE协议格式命令收发帧使用变量 dim SendByteArr(0) as byte    '存放发送命令字节数组 dim RecByteArr(0) as byte    '存放接收命令字节数组 dim DataByteArr(0) as byte    '存放解析数据临时字节数组 DIM nReturn as INTEGER        '函数返回判断标志 DIM nTmp as INTEGER                    '开关型临时变量 DIM 数值数据 as SINGLE            '解析数值型数据,对数值型通道赋值 DIM 开关数据 as INTEGER        '解析开关型数据,对开关型通道赋值 nIndex = 0 nChlIndex = 0 '------------------第0帧收发脚本-------------------- !ArrayResize(SendByteArr,0) '发送和接收数据按如下方式: !ArrayResize(RecByteArr,17) nReturn = !DevReadByteArr(RecByteArr, 17, 通讯延时) if nReturn <> 17 then !SetSingleChannelValueByName("通讯状态", 2) exit endif nIndex = 0 !ArrayResize(DataByteArr,1) while nIndex < 16 DataByteArr[1] = RecByteArr[nIndex*1+2] nReturn = !SvrGetByteFromByteArr(DataByteArr,1,开关数据,2) 数值数据 = 开关数据 !SetIntChannelValueByNum(nIndex+nChlIndex+2,开关数据) nIndex = nIndex + 1 endwhile nChlIndex = nChlIndex + nIndex'设置通讯标志,解析都正确 !SetSingleChannelValueByName("通讯状态", 0) nIndex = nIndex + 1 endwhile nChlIndex = nChlIndex + nIndex'设置通讯标志,解析都正确 !SetSingleChannelValueByName("通讯状态", 0) 5.2调试驱动 选择“调试”—“检查整个驱动”,若没有问题输出窗口会提示“设备编辑检查通过”,如图5.4所示。 图 5.4 驱动调试 5.3发布驱动并安装设备到MCGS 新建好一个脚本驱动后,会生成一个MDR主文件,即存放程序的文件,如果给 驱动写了帮助文件则还会多一个TXT格式的帮助文件。发布脚本驱动程序其实就是把这个MDR文件和帮助文件放到计算机指定的目录下,使MCGS组态软件可以调度使用。 发布开发好的脚本驱动有两种方法: (1)把MDR和帮助文件(如果没有帮助文件就只考MDR)拷贝到MCGS安装目录下的“Program\Drivers\”路径下的任意文件夹中即可。这样打开MCGS设备管理器后,新建的脚本驱动程序就以添加上了。 (2)使用MCGS设备管理对话框中的安装功能,完成安装,安装好的驱动会显示在用户定制设备文件夹下。具体操作下文会详细介绍。但这种方法无法拷贝脚本驱动的帮助文件。 脚本驱动的具体安装步骤: 1) 打开MCGS组态环境的设备窗口,单击“工具箱”按钮,弹出设备工具箱窗口; 2) 单击设备管理,出现设备管理对话框。对话框左侧显示所有可选的驱动设备,右侧显示已选中的驱动设备。新建的NTP脚本驱动还未加入可选驱动设备内。 3) 点击对话框左侧下方的“安装”按钮,找到存放“NTP脚本驱动”的目录,点“确认”,脚本驱动即添加到可选设备栏中“用户定制设备”文件夹下。可供工程随时选用。 4) 需要选用此设备驱动的步骤就如4.8节设备连接所讲。                                注意:脚本驱动开发工具包只适用于MCGS嵌入式6.8(01.0001)、通用版6.8(01.0001)、网络版6.8(01.0001)。网通版6.8(01.0001)以下版本提供相应的定制版本。 本工程使用的是MCGS通用版6.2定制版本,首先需在计算机上安装MCGS通用版6.2,然后打开脚本驱动开发工具包提供的通用版定制版本,将写好的驱动“ntp”复制到通用版定制版本下Driver文件夹下的任意文件夹下。用定制版打开“NTP网络时间显示工程”,按照4.8步骤添加设备连接,设置设备属性。即完成了整个工程的建立。 6 下载工程运行结果 用232连接装有NTP服务器软件的计算机同装有MVGS的计算机,打开NTP软件;打开NTP时间接受显示工程,点菜单栏上的“运行”按钮,即进入运行MCGS运行环境;打开NTP软件的串口,向计算机发送数据包,MCGS运行环境就会显示实时时间,结果如图6.1。 图 6.1 运行结果 7 结束语 利用MCGS组态软件实现NTP网络时间服务器与PC机的通讯,既充分发挥了MCGS组态软件图像界面丰富、显示形象直观、操作简便的优点,又充分利用了NTP时间的准确性。个人电脑和局域网内机器的时间准确性一般较差,安装NTP软件,并利用MCGS统一局域网内所有机器的时间,可大大提高局域网内机器时间的精准度。NTP从GPS处接收到国际统一标准时间,再发送给计算机,计算机通过MCGS接收NTP发送过来的数据包,并在显示画面中显示出来,清晰的表现出了数据传输过程,起到对传输过程的监控作用。确保NTP与PC上位机间通信的正确和顺利。通过本课题的设计研究,更深入了了解到了MCGS的功能及脚本驱动的的开发,基本掌握了MCGS的应用。 参考文献 [1] 张文明、刘志军. 组态软件控制技术[M].北京:清华大学出版社,2007. [2] 张晓军  基于组态软件的轨道板蒸汽养护监控系统的研究[D] 江苏 江南大学  2008. [3] 赵显红、李劲伟.基于MCGS的液压试验监控系统设计[J].拖拉机与农用运输车,2008,35,4. [4] 曹辉、马栋萍、王宣.组态软件技术及应用[M].北京:电子工业出版社,2010. [5] 刘金强.900平整机液压系统在线状态监测系统研究[D].河北:燕山大学,2007. [6] 何展翅,水泥厂监视与管理系统的开发与研究[M].武汉:武汉大学,2004. [7] 李建华,MCGS组态软件在核子秤计量中的应用[J].冶金自动化,2009,56. 致谢 本课题在设计和论文写作及程序编写调试过程中得到了指导老师常新华的悉心教导,并得到了各位学长学姐的热情帮助。 在见到此课题前,我对MCGS几乎一窍不通,也正是因为不懂,我才想借此机会好好学习一下NCGS组态软件。在课题进展过程中,总会碰到各种不之怎样去解决的问题,又在网上找不到有关MCGS的系统的教程,幸好有几位学长学姐曾学习过MCGS组态软件,在他们和老师的指导下才得以顺利完成任务。 最后感谢我的指导老师、同学、学姐学长们对我的支持与理解。
/
本文档为【NTP网络时间服务器与PC上位机组态软件的通信】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索