VB编程软件来开发上位机和PLC之间的通信.doc

上传人:wux****ua 文档编号:9047917 上传时间:2020-04-02 格式:DOC 页数:36 大小:400.50KB
返回 下载 相关 举报
VB编程软件来开发上位机和PLC之间的通信.doc_第1页
第1页 / 共36页
VB编程软件来开发上位机和PLC之间的通信.doc_第2页
第2页 / 共36页
VB编程软件来开发上位机和PLC之间的通信.doc_第3页
第3页 / 共36页
点击查看更多>>
资源描述
绪论Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是丠界上使用人数最多的语言不仅是盠赞VB的开发者还是抱怨VB的开发者的数颃。其中微软的办公软件,比如WORD和EXCEL都是用VB来编写的。它源自BASIC 编程语言。VB拥有图形用户界面( GUI )和快速应用程序开发( RAD )系统,可以轻易的使用 DAO 、 RDO 、 ADO 连接数据库 ,或者轻松的创建 ActiveX 控件 。Visual Basic是可视化Basic编程语言,有4.0,5.0和6.0,发展到现在有.NET BASIC,其中Visual Basic 6.0是应用最广泛的初学者编程语言,它基本兼容大多数BASIC下的源代码或稍加改动就能应用于Visual Basic的代码内,Visual Basic是编译型语言,所生成的EXE文件能在具有VB同版本运行库文件的WINDOWS环境下运行.下一个版本的Visual Basic将引入WebClasses,它是经过精心挑选后确定的网络开发的工具。因为它更具有scalable、更强大、而且是真正的language-agnostic。它在Visual Studio的所有的工具中起作用。如果你注意多层开发的一些基本规则,你可以很容易地完成这个转变。PLC即可编程控制器(Programmable logic Controller,是指以计算机技术为基础的新型工业控制装置。“PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。”PLC具有1可靠性高,抗干扰能力强,2配套齐全,功能完善,适用性强,3易学易用,深受工程技术人员欢迎,4系统的设计、建造工作量小,维护方便,容易改造,5体积小,重量轻,能耗低。PLC在好多领域都有其应用,比如在过程控制,运动控制等。如果能结合把VB灵活的编程和PLC的控制功能很好的结合,实现互相控制和读写,那将具有巨大的应用前景。本课题属于利用VB编程软件来开发上位机和PLC之间的通信。涉及VB编程,串口通信,PLC的应用。这个课题是对自动化所学专业的综合应用。第一章 VB与PLC通信的总体概述本毕业设计的要求是实现VB与松下PLC之间的通信,可利用VB编写的程序生成一个界面,实现对松下PLC的简单控制。比如对DT的读写,对输入输出点的读写,还有通信端口的选择等,做到准确无误。本系统是以VB为平台,用VB中的MOSCOMM控件,根据松下PLC自有的通信协议,编写串口通信程序。用VB提供的普通控件,如按扭,标签等基本控件来模拟PLC的各个开关量及状态。在VB生成的EXE软件中控制PLC的输入输出,并读取PLC在运行时的数据。设计思路总流程如下框所示本系统是在凌阳61板(SPCE061A单片机)的基础上,用LM35DZ精密集成电路传感器进行温度检测,用四位的数码管显示测量温度值和设定温度值,单片机输出PWM控制继电器吸合和释放来控制电热丝电流的通断。系统设计总框图如下:图 1.1 系统设计总框图通过MOSCOMM控件编写通信程序VB软件松下通信协议数据读出数据写入3对上述系统框图的说明如下:1,VB软件用的是VB6。0企业版2,采用松下MEWTOCOL2COM通信协议3,利用VB自身包含的做串口通信比较好的MOSCOMM控件编写程序4,最后实现能选择COM口,并且同步显示通信是否正常。PLC上电运行时,能和PLC里的程序相对应,能同步显示YO-Y8和X0-X8的输入输出状态,能对DT读和写,能实现控制RO的开关控制,并即时显示RO状态。第二章 系统的硬件设计本毕业设计系统的硬件包括松下FP-X系列PLC一台,自制PLC实验箱一只,内装VB6。0企业版本的PC机一台。这些硬件,通过在PC机,利用VB6。0编写串行通信程序,模拟和控制PLC的运行。实验箱主要用来辅助作用,通过实验箱和VB软件的结合,共同来完成对PLC的程序的有序的运行。2.1 PLC实验箱 本次毕业设计用到了暑假时候我们产。学。研基地成员在章老师和侯老师的带领下,自己设计完成的一个用于做PLC实验教学使用的实验箱,如下图3-1所示: 图21 松下PLC教学实验箱此实验箱包括两个部分。一:为系统模拟部分,其中主要包括16位输入输出的状态显示,电压表,电流表,两个七段数码管模拟显示,一台小型步进电机,还有一个松下GT30触摸屏,如图32所示。松下触摸屏GT30系列5.7英寸的中型可编程智能操作液晶显示面板,厚度41mm更加紧凑的结构,采用TureType字体,长寿命背光灯配置,自动通信设定,穿越功能,可以和多种PLC连接通信,可以用中、英、日等多国语言编辑,工作电压DC24V严格配备常用功能出众的维护性,轻巧的机,节省空间.美观、清晰的画面.支持主要品牌的PLC多语言显示.减轻PLC编程与调试的负担。 图22 松下触摸屏GT30此款产品与松下PLC合用,使操作更方便,使用起来更简单易懂。二:控制部分,为一台松下FP-X C30T小型PLC,本次毕业设计我用的是FP-X C30T。如下图32 图2-3 松下FP-X C30T PLC小型机身内置了4轴高速脉冲输出功能。2轴直线插补时,2组可同时进行。凸轮的电子化控制、单元化生产设备及液晶定位的XY平台Z轴控制、纸箱及热交换导管的立体弯曲加工、小型线圈的高密度绕线机等生产设备中所需的伺服电机、步进电机等的款式将越来越丰富,并趋向于多轴化设计。其中的FP-X把4轴脉冲输出功能内置于小型机身中,成为既可节省空间又可降低成本又可进行多轴控制,且适用于小型设备控制的小型通用PLC。其特点是:1.超高速处理 基本指令只需0.32s,可快速扫描。(例:5K步1时,为1.9ms)小型PLC内,通过高速处理速度0.32sec,也可对应要求高速扫描的用途。2.充裕的大容量 充裕的程序容量达到32K步。注释区域也可以充分保证。2通过超过小型PLC范畴的高程序容量32K步,可对应随着将来设备扩展而产生的范围广泛的各种应用。3.广泛的扩展性I/O最多300点。可通过功能扩展插件,使扩展范围更进一步扩大。针对客户的 “逐步扩展”的要求,可通过扩展插件,轻松地提高性能。也可控制成本。还有,利用扩展FP0适配器,最多可连接3台现有的FP0扩展单元。4.可靠的安全性通过8位密码和禁止上传功能,有效保护程序。5.配备USB端口3通过普通USB电缆(AB型),可与计算机实现简便连接。2.2 通信接口的介绍221 RS232通信接口串行通信端口(SERIAL COMMUNICATION PORT)在系统控制的范畴中一直占有极重要的角色,不仅没有因为时代的进步被淘汰,反而是在规格上愈来愈向其极限挑战。现在,计算机上的串行通信端口(RS232)是标准配置,用途上则以连接调制解调器作通信传输最为常见,当然了,它的重要性还不只如此!历史:美国EIA(电子工业联合会)&BELL等公司开发,于1970年公布全称是EIA RS232-C,RS是Recommended Standard (推荐标准),232是标识号,C代表最新1次修订。应用:RS232-C标准仅用于支持PC与调制解调器与打印机的连接。目前它又广泛地被借来用于计算机(计算机接口)与终端或外设 之间的近端连接标准. 图24 RS232简介串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在020000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。 RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS-485。 这里只介绍EIARS-232-C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。1.电气特性EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。在TxD和RxD上:逻辑1(MARK)=-3V-15V 逻辑0(SPACE)=+315V在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)+3V+15V信号无效(断开,OFF状态,负电压)=-3V-15V23引脚CCITTModem名称说明用途异步同步1101AA保护地设备外壳接地PEPE2103BA发送数据数据送ModemTXD3104BB接收数据从Modem接收数据RXD4105CA请求发送在半双工时控制发送器的开和关RTS5106CB允许发送Modem允许发送CTS6107CC数据终端准备好Modem准备好DSR7102AB信号地信号公共地SGSG8109CF载波信号检测Modem正在接收另一端送来的信号DCD9空10空11空12接收信号检测(2)在第二通道检测到信号13允许发送(2)第二通道允许发送14118发送数据(2)第二通道发送数据15113DA发送器定时为Modem提供发送器定时信号16119接收数据(2)第二通道接收数据17115DD接收器定时为接口和终端提供定时18空19请求发送(2)连接第二通道的发送器20108CD数据终端准备好数据终端准备好DTR21空22125振铃振铃指示RI23111CH数据率选择选择两个同步数据率24114DB发送器定时为接口和终端提供定时25空表21 RS232电气特性以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平告语+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在(315)V之间。EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTLEIA双向电平转换,图1显示了1488和1489的内部结构和引脚。MC1488的引脚(2)、(4,5)、(9,10)和(12,13)接TTL输入。引脚3、6、8、11输出端接EIA-RS-232C。MC1498的14的1、4、10、13脚接EIA输入,而3、6、8、11脚接TTL输出。具体连接方法如图2所示。图中的左边是微机串行接口电路中的主芯片UART,它是TTL器件,右边是EIA-RS-232C连接器,要求EIA高电压。因此,RS-232C所有的输出、输入信号都要分别经过MC1488和MC1498转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。2、连接器的机械特性:连接器:由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。(1)DB-25: PC和XT机采用DB-25型连接器。DB-25连接器定义了25根信号线,分为4组:异步通信的9个电压信号(含信号地SG)2,3,4,5,6,7,8,20,2220mA电流环信号 9个(12,13,14,15,16,17,19,23,24)空6个(9,10,11,18,21,25)保护地(PE)1个,作为设备接地端(1脚)DB-25型连接器的外形及信号线分配如图31所示。注意,20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支持。图2-5 DB25链接器的外型及信号线分配(2)DB-9连接器在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。电缆长度:在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离为15m(50英尺)。最大直接传输距离说明:RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。图2-6 DB9连接器的外型及信号线分布3、RS-232C的接口信号RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:(1)联络控制信号线:数据装置准备好(Data set ready-DSR)有效时(ON)状态,表明MODEM处于可以使用的状态。数据终端准备好(Data set ready-DTR)有效时(ON)状态,表明数据终端可以使用。这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。请求发送(Request to send-RTS)用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。允许发送(Clear to send-CTS)用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。接收线信号检出(Received Line detection-RLSD)用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RxD送到终端。此线也叫做数据载波检出(Data Carrier dectection-DCD)线。振铃指示(Ringing-RI)当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。(2)数据发送与接收线:发送数据(Transmitted data-TxD)通过TxD终端将串行数据发送到MODEM,(DTEDCE)。接收数据(Received data-RxD)通过RxD线终端接收从MODEM发来的串行数据,(DCEDTE)。(3)地线有两根线SG、PG信号地和保护地信号线,无方向。上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。2个数据信号:发送TXD;接收RXD。1个信号地线:SG。6个控制信号:DSR数传机(即modem)准备好,Data Set Ready.DTR数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,Data Terminal Ready。RTSDTE请求DCE发送(Request To Send)。CTSDCE允许DTE发送(Clear To Send),该信号是对RTS信号的回答。DCD数据载波检出,Data Carrier Detection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收, 并且由DCE将接收到的载波信号解调为数字信号, 经RXD线送给DTE。RI振铃信号 Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。2.2.2 RS422通信接口1.RS422全称是“平衡电压数字接口的电气电路”2.RS422最多可以接10个接点3.支持点对多的双向通信4.最大传输距离为4000英尺(约1219m),最大传输速率12Mb/s5.4个接线端子:TX+,TX-(数据发送) ;RX+,RX-(数据接收)6.接口:非标准接口,可自己定义,通常为9针或15针 图27 RS422概述2.2.3 RS485通信接口:1.RS485在RS422基础上发展而来,增加多点,双向通信能力2.RS485可采用2线制和4线制,其中2线制可实现真正的双向多点通信3.最大传输距离1219m,最大传输速率10Mb/s4.可最多接到32个设备5.2个接线端子:D+ ;D-6.接口:非标准接口,可自己定义图28 RS485接线原则224 RS232和RS422和RS485之间的区别1,通信距离:RS232距离最大为15m,而RS485/RS422距离为1200m2,所连接设备个数:RS232只能连接1个设备,而RS485/RS422可连接多个设备3接口定义:RS232是标准接口,为D形9针或15针,引脚定义一样,RS485/RS422没有定义接口形状,每个设备引脚定义也不一样。4,RS422为4线制,全双工工作模式,RS485为2线制,半双工工作模式。本次设计我采用的应用最广泛的RS232来实现串行通信第三章 系统的软件设计3.1 VB编程程序的基本思路用VB做串口通信,有很多种方法,其中包括AHLD和MOSCOMM方法等。但是对于初学者还是利用MSCOMM控件比较直观易学易懂。1、要编制VB与PLC的通讯程序,首先是需要VB6.0的企业版软件。2、电脑里需要有Mscomm32.ocx这个串行通讯控件,如果您安装了VB6.0企业版软件,安装软件会自动把Mscomm32.ocx控件放在您的电脑里。(当然,串行通讯不一定非要用Mscomm32.ocx来完成,但是我感觉初学时,用这个控件最直观!) 3、学习Mscomm32.ocx控件的使用方法。4、您需要了解掌握相应PLC的通讯协议,每个PLC的通讯协议基本都是不同的(当然,会了一种PLC与VB的通讯程序制作,其他的也基本没问题了,通讯协议不同而已!) 5、学习编制VB与PLC的通讯程序并不需要很多的VB知识,入门级的VB水平即可学会! 6、试着编写一般的小程序,比如一个按扭,一个标签等等基本的控件。7、学会了编制VB与PLC通讯程序,并且您的VB水平足够强,则可以将此技术应用于各行业。如:报表打印、工艺数据存档、趋势图形显示、工况查寻、参数在线修改等等监控系统。(VB高手很多,但是他们不一定都懂PLC通讯,您也可以与他们配合,只提供通讯方面的技术!)3.2 VB程序的特点visual basic(以下简称vb)是运行于windows平台下的一种可视化的高级编程语言。自1991年问世以来,vb适应了windows3.x到windows 95/98及windows nt等各版本的操作系统的发展,广泛应用于普通窗口类、数据库管理类、网络数据通信类等应用程序的开发。vb作为一种可视化的计算机的高级程序设计语言,有以下显著的特点:1) vb继承了basic语言简单易学的特点microsoft在发展vb过程中从来没有忘记其根源,编程的入门者即使是一个对计算机工作原理一窍不通的人,也可以在相当短的时间内编写一个可行的windows程序。2) 与基于dos环境下的编程语言相比,vb编程思想上发生了根本的改变与基于dos环境下的编程语言相比,vb编程思想上发生了根本的改变vb中引入了面向对象的程序设计方法,使程序设计人员从烦琐的程序设计细节中解脱出来,程序设计人员在进行程序开发时,选择适当的对象构造自己需要的界面。然后安排好某对象接收到何消息做什么就可以了。而不需要具体地考虑对象如何做、哪个先做、哪个后做的问题。3) vb具有强大的数据库管理功能vb支持sql数据库查询,利用vb中嵌入的数据库管理功能几乎可以操纵各种格式的数据库。4) 程序开发环境高度集成化vb是一个包括编辑、程序调试、程序运行、程序编译等各种功能的集成程序开发环境(ide)5) vb适应于开发视窗类应用程序vb中包含大量的函数、命令及关键字,其中大部分与windows图形用户界面相关,专业人员可以很方便地使用它们开发出功能强大的windows应用程序。3.3 串口通信方案RS232协议是基于物理层的通信协议,负责与硬件打交道,而VB语言与其它类型的高级语言相比在此方面具有较大的优势,这也是本文选用VB作为程序开发平台的一个重要原因。用VB6.0开发串口通信有四种方案,一是使用VB6.0提供的串行通信控件MSCOMM二是在单线程中实现自定义的串口通信类(封装WINDOWS API);三是多线程下实现串行通信(封装WINDOWS API);四是直接读写串口(自己编写RS232类、WIN32PORT类)四种方法的优缺点见图21为了编程方便,本文采用第一种方案。表31 各种串口通信方案比较3.4 串口通信控件利用Microsoft ActiveX通信控件MOSCOMM.OCX控件可实现串口通信。其主要属性见图22。 表32 MOSCOMM.OCX控件属性说明MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Eventdriven)方法,一是查询法。1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。2.MSComm 控件的常用属性MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。CommPort 设置并返回通讯端口号。Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。Input 从接收缓冲区返回和删除字符。Output 向传输缓冲区写一个字符串。35 通信协议工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器的网络协议中的一种。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法但是FP系列PLC采用的是该公司专用通信协议MEWTOCOL。本次毕业设计用的是松下的产品,自然通信协议也是采用的MEWTOCOL。该协议共分为两部分:一是计算机于PLC之间的 命令通信协议MEWTOCOL-COM;二是PLC与PLC之间及PLC与计算机之间的数据传输协议MEWTOCOL-DATA。特点1. 用于程序处理和交互式操作.2. 数据传输采用ASCII码的形式.3. 首先由计算机发送指令.4. 由PLC对指令自动进行相应响应.基本描述:指令格式校验数据范围 指令信息:%AD(H)AD(L)#指令代码文本代码1BCC(H)BCC(L)CR 应答信息 (正常时):%AD(H)AD(L)$响应代码文本代码1BCC(H)BCC(L)CR 应答信息 (发生错误时):%AD(H)AD(L)!错误代码(H)错误代码(L)BCC(H)BCC(L)CR指令一览表指令功能描述RCSRead single point of contact information读取单个触点的状态信息WCSWrite single point of contact information写入单个触点的状态信息RCPRead plural point of contact information读取多个触点的状态信息WCPWrite plural point of contact information写入多个触点的状态信息RCCRead word unit of contact information读取字单位的触点的状态信息WCCWrite word unit of contact information写入字单位的触点的状态信息SCPreset word unit in contact area预置字单位的触点RDRead data area读取数据寄存器值WDWrite data area写入数据寄存器值SDPreset of data area预置数据寄存器值RSRead timer and counter set value area读取定时器/计数器目标值WSWrite timer and counter set value area写入定时器/计数器目标值RKRead timer and counter elapsed value area读取定时器/计数器经过值WKWrite timer and counter elapsed value area写入定时器/计数器经过值MCRegistration and reset of monitor contact登录及复位监控触点MDRegistration and reset of monitor data登录及位监控数据MGMonitor execution执行监控RRRead system register读取系统寄存器WRWrite system register写入系统寄存器RTRead Programmable Controller (PC) status读取PLC当前状态RPRead program读取程序WPWrite program写入程序RMRemote control (RUN/PROGRAM mode switching)远程控制(运行/编程模式切换)ABTransmission abort command传输终止指令触点和数据代码1. 触点代码触点代码说明X外部输入Y外部输出R内部继电器T定时器C计数器L链接继电器2. 数据代码数据代码说明D数据寄存器 DTL链接寄存器 LDF文件寄存器 FLS目标值 SVK经过值 EVIX索引寄存器 IXIY索引寄存器 IYWX字单位外部输入 WXWY字单位外部输出 WYWR字单位内部继电器 WRWL字单位链接继电器 WL举例指令说明1. 读取单触点状态(指令代码: RCS) Contact Area Read (single point)指令%#RCS触点代码(1字符)触点编号(4字符)BCC(H)BCC(L)CR单触点指定 BCD HEX(3 digits) (1 digit) 目标站号(L)目标站号(H) 应答读取正常%$RC触点数据(1字符)BCC(H)BCC(L)CR源站号(L)源站号(H)读取错误%!BCC(H)BCC(L)CR参阅说明.错误代码源站号(L)源站号(H)说明 字符$表示正常的应答. 触点数据Contact data触点状态数据OFF0ON12. 写入单触点状态(指令代码: WCS ) Contact Area Write (single point)指令%#WCS指令代码(1字符)触点编号(4字符)触点数据(1字符)BCC(H)BCC(L)CR单触点指定参见注释. BCD HEX(3 digits) (1 digit) 目标站号(L)目标站号(H) Y, R, L 应答读取正常%$WCBCC(H)BCC(L)CR源站号(L)源站号(H)读取错误%!BCC(H)BCC(L)CR错误代码源站号(L)源站号(H)说明: 字符$表示正常的应答. 触点数据Contact data触点状态数据OFF0ON13. 读取多触点状态(指令代码: RCP ) Read Contract Area(plural point) 指令%#RCPn(1字符)触点代码(1字符)触点编号.(1)(4字符)多触点指定 BCD HEX(3 digits) (1 digit) 目标站号(L)目标站号(H) 触点编号(n: 1 to 8 ) n=1 - 8触点代码(1字符)触点编号.(n)(4字符)BCC(H)BCC(L)CR 应答读取正常%$RC触点1数据(1字符)触点n数据(1字符)BCC(H)BCC(L)CR源地址(L)源地址(H)参见说明.读取错误%!BCC(H)BCC(L)CR源地址(L)源地址(H)错误代码说明: 字符$表示正常应答. 触点数据触点状态数据OFF0ON14. 写入多触点状态(指令代码: WCP )Write Contract Area (plural point) 指令%#WCPn(1字符)触点1 代码(1字符)触点1编号.(4字符)触点数据(1字符)多触点指定 BCD HEX(3 digits) (1 digit) Y, R, L目标地址(L)目标地址(H) n: 1 to 8 n=1 - 8触点n 代码(1字符)触点n编号.(4字符)触点数据(1字符)BCC(H)BCC(L)CR应答读取正常%$WCBCC(H)BCC(L)CR源地址(L)源地址(H)读取错误%!BCC(H)BCC(L)CR错误代码源地址(L)源地址(H)说明: 字符$表示正常应答. 触点数据触点状态数据OFF0ON1第四章 总结此次毕业设计始于3月初,收尾于6月初期。在此期间,遇到了很多困难,设计工作的进度跟不上计划的安排,甚至是远远落后于计划。但我还是对遇到问题困难,逐一解决,最终在答辩前完成了所有的毕业设计工作。由于VB的四年的大学课程中没有涉及,我们学的是C语言,所以得从头开始。我用了三种方法使自己快速入门:1),自己上图书馆找资料,图书馆是知识的海洋,开阔而丰富,尽管里面找书有点麻烦,但是确实是个好资源。2),找老师,同学虚心提问,我们实验室恰好有个大二自学过VB的同学,于是他成了我的参谋,同时有机会也向侯老师,于老师,孙老师请教。3),网上找资料,网上有好多好心人也给了我很大的帮助。接着参照收集到的资料,调整思路,不断完善,在完成各个独立功能的程序后,通过调试把各个功能有机的结合起来,最终完成了总的软件编程。在最终做完这个串行通信,到达了原先设定的设计目标,实现了对PLC的读和写。通过这次设计,我对VB编程、PLC以及相关的串行通信技术都有了更深一步的了解。学到了课堂上无法学到的东西。通过实践,增强了我的意志,锻炼了我的思维方式。总的来说这次的设计,给了我一个实际锻炼机会,让我获得了VB与PLC通信设计的经验。由于水平及经验所限,本系统难免会有一些不足之处。我将在以后的学习工作中进一步得到完善。致 谢在本次毕业设计过程中,我得到了老师和同学的很多帮助,首先感谢我的导师侯北平博士。侯老师不仅学术造诣很高,而且为人和蔼可亲,治学态度非常严谨,不仅从他那里学到了好多的专业知识,培养了我务实求真的研究态度,而且也学到了好多深刻的做人道理,为人处事的准则。在学术研究上,他为我营造了一个轻松活跃的学术气氛,使我能够在其中充分发挥自己的创造性。此外,侯老师不但在学术上给予我悉心指导,而且在生活和工作等方面也给予我无微不至的关怀和帮助。在此,谨向侯老师致以诚挚的谢意。此外,感谢我们产学研基地的负责人章老师,感谢他给我们创造了这么好的硬件基础,提供了这么好的学习条件,同时在我做研究时候给我的支持与督促。还有孙勇智老师和于爱华老师,在我做毕业设计的同时也给予了我许多指导。感谢产学研基地里的所有成员,从基地的建设到维护,我们一起成长,团结友爱,虽然时间不长,但是我们都建立了深厚的友谊,同时在我做毕业设计的时候也给了我很大的帮助。感谢04自动化B1班的全体同学,谢谢他们在这四年里给予的关心和帮助,和他们在一起,我度过了美好的大学四年。最后要感谢我的父母,感谢父母这二十多年来对我的养育之恩和无私奉献,在这里,祝愿他们身体健康,生活快乐。参考文献1 郭纯生 可编程序控制器编程实战与提高2 松下电工FPWIN-GR全系列可编程程序控制器编程用户手册Z.2005.3 Visual Basic串口通信与测控应用技术实战详解 人民邮电出版社 2007年6月4 Visual Basic串口通信技术与典型实例 清华大学出版社 2006年4月5 范逸之 陈立元 Visual Basic与RS-232串行通信控制(最新版本)中国青年出版社6 常斗南 可编程控制器原理。应用及通信基础 机械工业出版社7 李长久. PLC原理及应用M. 机械工业出版社,2006年9月.8 常斗南 李全利 可编程控制器原理及工程应用 电子工业出版社9 Visual Basic控件参考大全 人民邮电出版社 662页679页10 Visual Basic编程入门与提高 电子工业出版社 11 松下电工株式会社. Instructions used with FP-X12 松下电工株式会社. FP-X系列编程手册13 Don.Box.Essential.COM. Addison-Wesley Professional14 Rayas-Sanchez, JE. A Frequency-Domain Approach to Interconnect Crosstalk Simulation and Minimization, Department of Electronics, Systems, and InformaticsJ, ITESO University, Tlaquepaque, Jalisco, Mexico.附录1 主要程序Dim 非实时监控通讯 As Boolean判断是否有“非实时监控通讯”操作,如果有则暂停实时监控通讯,处理操作者发出的指令。Dim 实时监控通讯 As Boolean 本程序利用定时器控件做了一组PLC输入、输出点状态、R0状态,DT0值、PLC当前运行状态的实时监控Dim j As Integer 作用:实时监控共需要五次才能完成一个实时监控通讯循环,每次j+1来判断应该发送第几次命令Dim Sendata As String 发送通讯命令变量Dim errT As Boolean 通讯口错误Private Sub Combo2_Click() 通讯超时选择Timer2.Interval = (Combo2.ListIndex + 1) * 1000 判断通讯是否正常的定时器检测时间End SubPrivate Sub Command1_Click() 非实时监控通讯 = True Sendata = %01#RMR Sendata = Sendata + FCS(Sendata) + vbCr End SubPrivate Sub Command2_Click() 非实时监控通讯 = True Sendata = %01#RMP Sendata = Sendata + FCS(Sendata) + vbCrEnd SubPrivate Sub Command3_Click() R0-ON 非实时监控通讯 = True Sendata = %01#WCSR00001 Sendata = Sendata + FCS(Sendata) + vbCrEnd SubPrivate Sub Command4_Click() R0-OFF 非实时监控通讯 = True Sendata = %01#WCSR00000 Sendata = Sendata + FCS(Sendata) + vbCrEnd SubPrivate Sub Command5_Click() 写DT0 非实时监控通讯 = TrueSendata = Right(0000 + Hex(Val(Text2), 4) Sendata = Right(Sendata, 2) + Mid(Sendata, 1, 2) 写入数据的顺序是反的。低字节在前,高字节在后 Sendata = %01#WDD0040000400 + Sendata Sendata = Sendata + FCS(Sendata) + vbCrEnd SubPrivate Sub Form_Load()Dim g As Integer
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!