水压试管机监测系统_第1页
水压试管机监测系统_第2页
水压试管机监测系统_第3页
水压试管机监测系统_第4页
水压试管机监测系统_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)题目:水压试管机监测系统--下位机通讯模块设计所属院(系)电子信息工程学院2012年6月10日目录摘要 ⅢAbstract Ⅳ第一章水压试管机介绍 -1-1.1水压试管机特点 -1-1.2水压试管机控制系统概述 -1-1.2.1水压试管机控制系统的组成 -1-1.2.2水压试管机控制系统的工作原理 -2-第二章S7-200概述 -4-2.1S7-200优点 -4-2.2S7-200适用范围 -4-2.3S7-200CPU介绍 -4-2.4S7-200各型号优点 -6-2.5S7-200的特性 -8-2.5.1S7-200允许你在程序中立即读写I/O -8-2.5.2S7-200允许在程序扫描周期中使用中断 -8-2.5.3S7-200允许设定通讯任务的处理时间 -9-2.5.4S7-200允许你设置停止模式下的数字量输出状态 -9-2.5.5S7-200允许你定义掉电保持存储区 -10-2.5.6S7-200允许你对数字量输入加滤波器 -11-2.5.7S7-200允许你对模拟量输入加滤波器 -11-2.5.8S7-200允许你捕捉窄脉冲 -12-2.5.9S7-200提供密码保护功能 -13-2.5.10S7-200提供模拟电位器 -15-第三章串行通信基础 -16-3.1串行通信概述及分类 -16-3.1.1概念 -16-3.1.2串行通信的分类 -16-3.2串行通信的工作方式 -16-3.3串口通信的物理接口标准 -17-第四章自由口模式下PLC与计算机的通信 -19-4.1自由口模式下PLC与计算机的通信概述 -19-4.2自由口模式下PLC与计算机的通信的协议 -19-4.3指令格式定义 -19-第五章下位机通信模块设计 -24-5.1STEP7-Micro/WIN32介绍 -24-5.1.1软件安装及硬件连接 -24-5.1.2软件功能介绍 -25-5.1.3编程软件的使用 -29-5.1.4程序监控与调试 -33-5.2下位机通信模块设计 -35-5.2.1PLC程序执行过程 -35-5.2.2程序清单 -36-总结 -47-参考文献 -48-致谢 -49-

水压试管机监测系统--下位机通讯模块设计摘要本设计用可编程控制器(PLC)与工业计算机实现对钢管的水压密封试验。本文对通讯模块的系统设计将两者结合,由PLC完成对现场设备的直接控制,同时通过串行总线与工业计算机通信来实现设计要求。本设计首先对试管机的原理概述,并给出了对其设计的一套方案;其次对设计所需要的PLC及S7-200的特点进行介绍,由此可见PLC的优越性,然后又对自由口及通信协议进行了诠释,对设计程序提出了要求;最后就是此次设计的程序要点。本次设计通过五个章节对水压试管机进行从原理到软件实现的流程,最终完成整个设计。关键词:通讯;PLC;协议

HydrostatictestmachinecontrolsystemThecommunicationmoduledesignAbstractThisdesignwithprogrammablelogiccontroller(PLC)andindustrialcomputerforthehydraulicsealingtestTube.BasedoncommunicationmodulesystemdesignwillfinishbycombinationofPLC,thedirectcontrol,andthroughserialbusandindustrialcomputercommunicationtorealizethedesignrequirements.Thedesignprincipleofthefirsttest-tubemachine,andpresentsthedesignofasetofsolutions,Nexttothefirsttest-tubemachine,andpresentsthedesignofasetofsolutions,NexttotheneedsofdesignofS7-200PLCandcharacteristics,thusthesuperiorityofPLC,thentofreedomandthecommunicationprotocol,putforwardtodesignprogramrequirements.Finally,thedesignprocedureisthekey,Thedesignofhydraulicpressuretubethroughthefivechaptersfromprinciplestomachinetoprocessofsoftware,completethewholedesign.Keywords:Communication;PLC;Theagreement第一章水压试管机介绍水压机是一种利用油水平衡控制对钢管进行静水压试验的机器。它主要有以下几部分组成:钢管传送装置、水路系统、油路系统和控制系统。1.1水压试管机特点工作行程大,在全行程中都能对工件施加最大工作力,能更有效地锻透大断面锻件,没有巨大的冲击和噪声,劳动条件较好,环境污染较小。1.2水压试管机控制系统概述钢管传送装置负责钢管的进出传送,水路系统负责钢管进行静水压试验时向钢管里充水打压,油路系统负责钢管静水压试验时控制封头实现管端油水压力平衡,控制系统负责整个设备的自动运行控制和试验数据的自动保存和历史数据的管理。下面对控制系统进行简要介绍。1.2.1水压试管机控制系统的组成水压机的控制系统是一套简单的DCS控制系统,它由硬件系统、软件系统和人三部分组成。(1)硬件系统组成硬件系统主要由上位机、下位机、人机接口、现场传感器和可执行元件组成。上位机包括工程师站和操作员站,他们共用一台电脑,上位机还作为数据服务器使用,存储试验数据。下位机由一台S7-200PLC担任,它负责对现场传感器检测到的信号传送给上位机进行信号处理,同时它又把上位机的控制指令翻译成执行指令控制现场可执行元件的动作,从而实现系统整体自动协调动作,完成钢管的静水压试验。人机接口包括键盘、鼠标和操作台。利用键盘、鼠标,通过电脑操作画面完成参数传递和实时监控显示以及数据报表的打印等操作。操作台完成外围辅助设备的动作,包括钢管传送、油泵和水泵的起停、管端封头的移动等。现场传感器有水压传感器和油压传感器,它们负责实时检测水路系统和油路系统的压力,将它们转换为电信号传送到PLC,等待进一步处理。可执行元件包括电液比例阀、电磁换向阀、电机和信号指示灯,它们负责实现机械的各个具体动作和相关信号指示。(2)软件系统组成软件系统包括:监控组态软件、历史数据管理软件、PLC运行开发软件(Step7MicroWin3.2)。监控组态软件包括开发环境系统和运行环境系统。它们安装在工程师站和操作员站上,工程师有权限运行开发环境系统和运行环境系统,操作员只能运行运行环境系统。在运行环境系统里,实行分级密码保护,不同权限的操作员只能运行对应权限的操作,工程师具有最高权限,他可以进行所有操作。工程师利用开发环境系统开发出监控程序,运行环境系统负责现场实时数据的采集和保存。历史数据管理软件包括数据库系统(Access数据库)、数据报表查询软件(利用VB开发的可执行文件)、VB开发系统,它们负责历史数据的报表查询。工程师利用PLC开发软件开发出控制软件,通过PLC系统完成所需的动作。PLC运行软件下载到PLC存储器,通过自动运行控制现场可执行元件的动作。(3)人员组成人员组成有工程师和操作员。工程师负责控制系统的软件维护和硬件技术支持。操作员负责具体操作,完成水压机的所有功能。1.2.2水压试管机控制系统的工作原理水压机的基本工作原理是帕斯卡定律,利用水为工作介质,以静压力传递进行工作控制系统的工作原理主要分为以下几部分:1.工程师设置好控制参数;2.根据工艺要求,操作员修改传送工艺参数;3.操作员利用操作台通过PLC控制钢管传送装置完成钢管的传送;4.当钢管到达试验位置后,操作员通过人机接口完成管端密封和管内预充水,开始钢管静水压试验;5.水压传感器实时检测钢管里的水压值,传送到PLC进行信号分析处理,根据油水平衡原理,计算出油压控制信号,输出到电液比例阀的功率驱动单元,控制电液比例阀的动作,进而控制管端封头的油压值,实现油水平衡,完成钢管的静水压试验。油压传感器和水压传感器检测到的信号同时被实时送到工控机里,操作员通过监控画面实时监控试验过程。

第二章S7-200概述S7-200是一种小型的可编程控制器,适用于各行各业,各种场合中的检测、监测及控制的自动化。S7-200系列的强大功能使其无论在独立运行中,或相连成网络皆能实现复杂控制功能。因此S7-200系列具有极高的性能/价格比。2.1S7-200优点S7-200系列出色表现在以下几个方面:*极高的可靠性*极丰富的指令集*易于掌握*便捷的操作*丰富的内置集成功能*实时特性*强劲的通讯能力*丰富的扩展模块2.2S7-200适用范围S7-200系列在集散自动化系统中充分发挥其强大功能。使用范围可覆盖从替代继电器的简单控制到更复杂的自动化控制。应用领域极为广泛,覆盖所有与自动检测,自动化控制有关的工业及民用领域,包括各种机床、机械、电力设施、民用设施、环境保护设备等等。如:冲压机床,磨床,印刷机械,橡胶化工机械,中央空调,电梯控制,运动系统。S7-200系列PLC可提供4个不同的基本型号的8种CPU供使用。2.3S7-200CPU介绍集成的24V负载电源:可直接连接到传感器和变送器(执行器),CPU221,222具有180mA输出,CPU224,CPU224XP,CPU226分别输出280,400mA,可用作负载电源。不同的设备类型:CPU221-226各有2种类型CPU,具有不同的电源电压和控制电压。(1)本机数字量输入/输出点:CPU221具有6个输入点和4个输出点,CPU222具有8个输入点和6个输出点,CPU224具有14个输入点和10个输出点,CPU224XP具有14个输入点和10个输出点,CPU226具有24个输入点和16个输出点。(2)本机模拟量输入/输出点CPU224XP具有2个输入点,1个输出点。(3)中断输入允许以极快的速度对过程信号的上升沿作出响应。(4)高速计数器CPU221/2224个高速计数器(30KHz),可编程并具有复位输入,2个独立的输入端可同时作加、减计数,可连接两个相位差为90°的A/B相增量编码器。CPU224/224XP/2266个高速计数器(30KHz),具有CPU221/222相同的功能。CPU222/224/224XP/226可方便地用数字量和模拟量扩展模块进行扩展。可使用仿真器(选件)对本机输入信号进行仿真,用于调试用户程序。模拟电位器CPU221/2221个CPU224/224XP/2262个脉冲输出2路高频率脉冲输出(最大20KHz),用于控制步进电机或伺服电机实现定位任务。实时时钟例如为信息加注时间标记,记录机器运行时间或对过程进行时间控制。EEPROM存储器模块(选件)可作为修改与拷贝程序的快速工具(无需编程器),并可进行辅助软件归档工作。电池模块用于长时间数据后备。用户数据(如标志位状态,数据块,定时器,计数器)可通过内部的超级电容存贮大约5天。选用电池模块能延长存贮时间到200天(10年寿命)。电池模块插在存储器模块的卡槽中。编程CPU221/222/224/224XP/226STEP7-Micro/WIN32V3.1编程软件可以对所有的CPU221/222/224/224XP/226功能进行编程。同时也可以使用STEP7-Micro/WIN16V2.1软件包,但是它只支持对S7-21x同样具有的功能进行编程。STEP7-Micro/DOS不能对CPU221/222/224/224XP/226编程。如果使用PG/PC的串口编程,则需要使用PC/PPI电缆。如果使用STEP7-Micro/WIN32V3.1编程软件,则也可以通过SIMATICCP5511或CP5611编程。在这种情况下,通讯速率可高达187.5kbit/s。可以利用PC/PPI电缆和自由口通讯功能把S7-200CPU连接到许多和RS-232标准兼容的设备。有两种不同型号的PC/PPI电缆:带有RS-232口的隔离型PC/PPI电缆,用5个DIP开关设置波特率和其它配置项(见下图)。带有RS-232口的非隔离型PC/PPI电缆,用4个DIP开关设置波特率。有关非隔离型PC/PPI电缆的技术规范,请参阅S7-200可编程控制器系统手册。当数据从RS-232传送到RS-485口时,PC/PPI电缆是发送模式。当数据从RS-485传送到RS-232口时,PC/PPI电缆是接收模式。当检测到RS-232的发送线有字符时,电缆立即从接收模式转换到发送模式。当RS-232发送线处于闲置的时间超过电缆切换时间时,电缆又切换到接收模式。这个时间与电缆上的DIP开关设定的波特率选择有关。2.4S7-200各型号优点(1)CPU221本机集成6输入/4输出共10个数字量I/O点。无I/O扩展能力。6K字节程序和数据存储空间。4个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。非常适合于小点数控制的微型控制器。(2)CPU222本机集成8输入/6输出共14个数字量I/O点。可连接2个扩展模块。6K字节程序和数据存储空间。4个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。非常适合于小点数控制的微型控制器。(3)CPU224本机集成14输入/10输出共24个数字量I/O点。可连接7个扩展模块,最大扩展至168路数字量I/O点或35路模拟量I/O点。13K字节程序和数据存储空间。6个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出,具有PID控制器。1个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。I/O端子排可很容易地整体拆卸。是具有较强控制能力的控制器。(4)CPU224XP本机集成14输入/10输出共24个数字量I/O点,2输入/1输出共3个模拟量I/O点,可连接7个扩展模块,最大扩展值至168路数字量I/O点或38路模拟量I/O点。20K字节程序和数据存储空间,6个独立的高速计数器(100KHz),2个100KHz的高速脉冲输出,2个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。本机还新增多种功能,如内置模拟量I/O,位控特性,自整定PID功能,线性斜坡脉冲指令,诊断LED,数据记录及配方功能等。是具有模拟量I/O和强大控制能力的新型CPU。(5)CPU226本机集成24输入/16输出共40个数字量I/O点。可连接7个扩展模块,最大扩展至248路数字量I/O点或35路模拟量I/O点。13K字节程序和数据存储空间。6个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出,具有PID控制器。2个RS485通讯/编程口,具有PPI通讯协议、MPI通讯协议和自由方式通讯能力。I/O端子排可很容易地整体拆卸。用于较高要求的控制系统,具有更多的输入/输出点,更强的模块扩展能力,更快的运行速度和功能更强的内部集成特殊功能。可完全适应于一些复杂的中小型控制系统。S7-200系列PLC是PID控制器的产品,另外,国内外还有一些厂家生产与其完全兼容的产品,例如德国VIPA公司,中国上海正航电子科技有限公司等。221222224224XP226226XM图2.1各型号的S7-2002.5S7-200的特性2.5.1S7-200允许你在程序中立即读写I/O在s7-200的指令集中提供了立即读写物理I/O点的指令。尽管通常情况下我们使用映象寄存器作为源地址和目的地址来访问I/O,但这些立即I/O指令却允许我们自接访问真正的输入、输出点。当使用立即指令访问一个输入点时,相应的过程映象输入寄存器小会发生改变。但当你用立即指令访问一个输出点时,相应的过程映象输出寄存器会同时更新。通常认为在执行应用程序时,用过程映象寄存器会比使用自接访问输入、输出具有优越性。之所以这样有以下三个原因:1.所有输入点的采样是在扫描周期的一开始同步进行的。在整个扫描周期的程序执行过程中输入值被冻结。而输出点按照映象寄存器中的值刷新是在程序执行完成之后。这样会使系统更加稳定。2.访问映象寄存器的速度比自接访问I/O点要快,有利于程序快速运行。3.I/O点是位实体,只能按位或者字节来访问,而你可以按位、字节、字或者双字的形式来访问映象寄存器。也就是说,使用映象寄存器更为灵活。2.5.2S7-200允许在程序扫描周期中使用中断如果你使用了中断,与中断事件相关的中断服务程序作为程序的一部分被保存。中断服务程序小会在正常的程序扫描周期中执行,它只有在中断事件发生时才被执行(有可能在扫描周期的任意一点)。在中断优先级相同的情况下,S7-200遵循先来先服务的原则来执行中断服务程。2.5.3S7-200允许设定通讯任务的处理时间你可以设定一个扫描周期的百分比用来处理与RUN模式编译或执行状态相关的通讯请求。当你增加用于处理通讯请求时间的百分比的同时,也增加了程序的扫描周期,使你的控制过程变慢。用于处理通讯请求的时间百分比的缺省值为10}。这个默认设置为在对控制过程影响最小的前提下处理编译和状态操作,提供了一个合理的时间。你可以在5%到50%之间调节这个值。要想设置背景通讯的扫描周期时间片,按以下步骤:1.在命令菜单中选择View>Comoonent>SYstemBlock,单击背景时间标签。2.改变通讯背景时间的值并单击OK。3.将改变后的系统块下载到S7-200中。图2.2通讯背景时间2.5.4S7-200允许你设置停止模式下的数字量输出状态S7-200的输出表允许你选择STOP模式下的输出状态,是将已知值传送到数字量输出点,还是使输出保持S丁OP模式之前的状态。输出表是系统块的一部分,它被下载并存储在CPU中,而且仅供数字量输出使用。在命令菜单中选择View>Component>SystemBlock,单击输出表标签。如果要冻结上一个状态的输出,选择FreezeOouts复选框。如果要将输出表中的值复制到输出点上,则要填写输出表。在你希望从运行到停止模式转换后置1的相应位置上点击。(输出表的缺省设置全部为O。)点击OK保存你的选择。将改变后的系统块下载到S7-200中图2.3组态输出表2.5.5S7-200允许你定义掉电保持存储区如果你希望在掉电后仍然保持存储区中的数据,你可以定义最多六个掉电保持区的地址范围。在掉电保持区中你可以使用以下存储区的地址范围:V,M,C和丁。只有保持刑定时器(丁ONR)可以设为掉电保持的。M存储区的前14个字节,缺省设置为小保持对于定时器和计数器来说,只有当前值可以保持,而定时器位和计数器位是小能保持的。按照以下步骤设置掉电保持区:1在命令菜单中选择View>Component>SYstemBlock,单击掉电保持区标禁。2设置掉电保持区的范围并单击OKa3将改变后的系统块下载到S7-200中。图2.4掉电保持存储区2.5.6S7-200允许你对数字量输入加滤波器S7-200允许你为某些或者全部本机数字量输入点选择输入滤波器,并为滤波器定义延迟时间(从0.2ms到12.8ms可选)。这个延迟时间有助于滤除输入噪声,以免引入输入状态小可预测的变化。输入滤波器是系统块的一部分,它被下载并存储在CPU中。滤波器延迟时间的缺省值为6.4ms。如图4-24所示,一组输入点共用一个延迟时间。按照以下步骤设置输入滤波器延迟时间:1.在命令菜单中选择View>Component>SYstemBlock,单击输入滤波器标签。2.为每一组输入指定延迟时间。3.将改变后的系统块下载到S7-200中。图2.5组态输入滤波器2.5.7S7-200允许你对模拟量输入加滤波器S7-200允许你对每一路模拟量输入选择软件滤波器。滤波值是多个模拟量输入采样值的平均值。滤波器参数(采样次数和死区)对于允许滤波的所有模拟量输入是相同的。滤波器具有快速响应的特点,可以反映信号的快速变化。当输入与平均值的差超过设定的变化时,滤波器对最近的模拟量输入值产生一个阶跃函数。这个差称为死区,并用模拟量输入的数字信号设定。缺省配置是允许所有输入滤波。1.在命令菜单中选择View>Comoonent>SystemBlock,单击模拟量输入滤波标签。2.选择需要滤波的模拟量输入、采样个数和死区。3.单击OKa4.将改变后的系统块下载到S7-200中。图2.6模拟输入量滤波2.5.8S7-200允许你捕捉窄脉冲S7-200为每个本机数字量输入提供脉冲捕捉功能。脉冲捕捉功能允许PLC捕捉到持续时问很短的高电平脉冲或者低电平脉冲。而在扫描周期的开始,这些脉冲小是总能被CPU读到。当一个输入设置了脉冲捕捉功能时,输入端的状态变化被锁存并一自保持到下一个扫描循环刷新。这就确保了一个持续时问很短的脉冲被捕捉到并保持到S7-200读取输入点。可以分别使能每一个本机数字量输入点的脉冲捕捉功能。按照以下步骤设置脉冲捕捉:1.在命令菜单中选择View>Component>SYstemBlock,单击脉冲捕捉标禁a2.点击相应的复选框并点击OKa3.将改变后的系统块下载到S7-200中。图2.7脉冲捕捉带有和不带有脉冲捕捉功能的S7-200的基本操作如下图所示。图2.8带有和不带有脉冲捕捉功能的S7-200操作由于脉冲是在通过了输入滤波器之后,才能够被捕捉到,因而要调整输入滤波时问,确保脉冲小被滤掉。数字输入电路的方框图如图所示。图2.9数字输入电路图2.10不同输入条件下的脉冲捕捉响应2.5.9S7-200提供密码保护功能所有的S7-200CPU都提供了密码保护,来限制对某些特定功能的使用。对CPU功能及存储器的访问权限是通过密码来实现的。小设定密码保护,对S7-200的访问没有限制。设置了密码保护,根据女装密码时的设置,CPU禁比所有的受限操作。密码小区分大小写。如表4-3所示,S7-200CPU提供了限制CPU访问功能的三个等级。每个等级允许特定的无需密码的访问功能。S7-200的缺省设置为等级1(没有限制)。在网络中输入密码小会对CPU的密码保护有所危害。CPU只允许一个用户使用访问权限,禁比其它用户使用这些功能。同一时刻,只允许一个用户小受限制地访问CPU。图2.11S7-200的存取限制为S7-200配置密码。如图所示的系统块对话框允许你为S7-200配置密码。1在命令菜单中选择View>Component>SYstemBlock,单击密码标禁。2.为S7-200选择介适的访问级别。3.输入并确认密码。4.单击OKa5.将改变后的系统块下载到S7-200中。图2.12创建密码密码忘记后如何恢复如果你忘记了密码,你必须清除存储器,重新下载应用程序。清除存储器会使S7-200处于停比模式,并且将S7-200中,除了网络地址、波特率和时钟以外的其它参数恢复到出厂设置。按照以下步骤清除S7-200中的应用程序:1.在命令菜单中选择PLC>Clear来显示清除对话框。2.选择所有的块并点击OK确认。3.如果配置了密码,S下EP7-Micro/WIN会显示密码授权对话框。要清除密码,在密码授权对话框中输入“CLEARPLC",就可以继续执行全部清除的操作。("CLEARPLC"小区分大小写。)全部清除操作小会去掉存储卡中的程序。由于密码和程序一同保存在存储卡中,因而必须重新写存储卡,才能从程序中去掉密码。2.5.10S7-200提供模拟电位器模拟电位器位于模块前盖下而。你可以调节这些电位器来增加或者减小存于特殊存储器中的值(SMB)。这些只读值在程序中可用作很多功能,如更新定时器或计数器的当前值,输入或修改顶置值、限定值等。可以用一个小螺丝刀来进行调节:将电位器顺时针(向右)旋转来使数值增大;逆时针(向左)旋转来使数值减小。SMB28中的数值代表模拟电位器0的位置。SMB29中的数值代表模拟电位器1的位置。模拟电位器的标定范围为0到255,重复度为士2a,S7-200提供高速I/O,高速计数器。S7-200具有集成的高速计数功能,它能够对外部高速事件计数而小影响S7-200的性能。不同CPU支持的计数速率,参见附录A。每个计数器都有专用的输入点作为时钟、方向控制、复位端、启动端等功能输入。在小同的模式下有小同的计数速率。。高速脉冲输出S7-200支持高速脉冲输出功能。PTO输出方波(占空比50%),并可指定所输出的脉冲数量和周期。脉冲数可指定为1到4,294,967,295。周期的单位。J一以是微秒(us),也。J一以是毫秒(ms),设为50到65,535微秒或者2到65,535毫秒。脉冲序列输出(户下O)功能可以编程为产生一列脉冲或产生由多个脉冲序列组成的脉冲包络。在脉冲包络操作方式中,户下O功能被编程为控制一个步进电机运行一个简单的斜坡上升、运行和斜坡下降操作序列或更复杂的操作序列。包络最多由255段组成,每一段对应一个斜坡上升或斜坡下降操作。PWM功能提供具有可变占空比的固定周期的输出脉冲。周期和脉宽既可以用微秒又可以用毫秒为单位。周期范围为50到65,535微秒或者2到65,535毫秒。脉宽可以从0到65,535微秒或者0到65,535毫秒。当脉宽等于周期时,占空比为100%,输出恒定为1;当脉宽等于0时,占空比为0,输出恒定为0.

第三章串行通信基础3.1串行通信概述及分类3.1.1概念串行通信(SerialCommunication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作.3.1.2串行通信的分类串行通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。、3.2串行通信的工作方式由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有"接收移位寄存器"(串→并)和"发送移位寄存器"(并→串).在数据输入过程中,数据1位1位地从外设进入接口的"接收移位寄存器",当"接收移位寄存器"中已接收完1个字符的各位后,数据就从"接收移位寄存器"进入"数据输入寄存器".CPU从"数据输入寄存器"中读取接收到的字符.(并行读取,即D7~D0同时被读至累加器中)."接收移位寄存器"的移位速度由"接收时钟"确定.在数据输出过程中,CPU把要输出的字符(并行地)送入"数据输出寄存器","数据输出寄存器"的内容传输到"发送移位寄存器",然后由"发送移位寄存器"移位,把数据1位1位地送到外设."发送移位寄存器"的移位速度由"发送时钟"确定.接口中的"控制寄存器"用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式."状态寄存器"的各位称为"状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5位为"1"表示"数据输出寄存器"空,用D0位表示"数据输入寄存器满",用D2位表示"奇偶检验错"等.能够完成上述"串<-->并"转换功能的电路,通常称为"通用异步收发器"(UART:UniversalAsynchronousReceiverandTransmitter),典型的芯片有:Intel8250/8251,16550。3.3串口通信的物理接口标准(1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。(2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。(4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。(5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。(6)提供EIA-RS-232C接口标准所要求的信号线:RS-232-C,也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。远距离通信采用MODEM时,需要9根信号线,九针串口图及引脚功能如下:1CD2RDX1CD2RDX3TXD4DTRCOMMON6DSR7RTS8CTS9RI1CD2RDX3TXD4DTRCOMMON6DSR7RTS8CTS9RI图3.1九针串口图引脚功能:1载波检测(CD)2接受数据(RXD)3发出数据(TXD)4数据终端准备好(DTR)5信号地线(SG)6数据准备好(DSR)7请求发送(RTS) 8清除发送(CTS)9振铃指示(RI)

第四章自由口模式下PLC与计算机的通信4.1自由口模式下PLC与计算机的通信概述下面说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC从站各寄存器的读/写操作。计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。4.2自由口模式下PLC与计算机的通信的协议在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。4.3指令格式定义(1)计算机每次一个33字节长的指令来实现一次读/写操作。1.起始字符起始字符标志着指令的开始,在本例中被定义为ASCII码的“@",不同的PLC从站可以定义不同的起始字符以接收针对该PLC的指令。2.指令类型该字节用来标志指令的类刑,在本例中05H代表读操作,06H代表写操作。3.目标PLC站地址目标PLC站地址占用指令的B2,B3两个字节,以十六进制ASCII码的格式表示目标PLC的站地址。4.目标寄存器地址在PLC内部可以用4个字节来表示一个寄存器的地址(但小能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。0000(H):I寄存器区0100(H):Q寄存器区0200(H):M寄存器区0800(H):V寄存器区例如:IB000I的地址可表示为00000000(H)VB100I的地址可表示为08000064(H)6.读/写字节数M当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII码后占用16个字节),叫以根据自己的需要取用,M叫以任意写入。当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将占用2个字节,此时应向M中写入“02"。同理,如果要写入5个字节的数据,M中应写入"OA"。7.要写入的数据要写入的数据在指令中十六进制ASCII码的格式表示,占用指令的B14-B29共16个字节。数据区必须填满,但只有前M个字节的数据会被写入目标寄存器。一条指令最多可以写入8个字节的数据(此时M中应写入“10",代表十进制的16)8.BCC校验码在传输过程中,指令有可能受到任何干扰而使原来的数据信号发生扭曲,此时的指令当然是错误的,为了侦测指令在传输过程中发生的错误,接收方必须对指令作进一步的确认上作,以防止错误的指令被执行,最简单的方法就是使用校验码。BCC校验码的方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的。在本例中,bcc为指令B1到B29的异或和,BCC为bcc的十六进制ASCII码。Bcc=B1xorB2xorB3xorB4xor……xorB299.结束字符结束字符标志着指令的结束,在本例中被定义为ASCII码的“G",不同的PLC从站可以定义不同的结束字符以接针对该PLC的指令。(2)PLC在接到上位机指令后,将发送一个21字节长反馈信息。1起始字符起始字符标志着反馈信息的开始,在本例中被定义为ASCII码的“a",不同的PLC从站叫以定义不同的起始字符,这样上位机叫可以根据信息的起始字符来判断反馈信息的来源。2状态信息该字节包含指令执行的状态信息,在本例中01H代表读取正确02H代表写入正确03H代表BCC校验码错误04H代表指令不合法3.数据区反馈信息的B3到B18为读指令所要读取的数据,以十六进制ASCII码表示。4.BCC校验码与上位机指令中的BCC校验码类似,它是反馈信息B3到B18的异或和。5结束字符结束自负标志着反馈信息的结束,在本例中被定义为26H。指令中为何要使用ASCII码一条指令除包含数据外,还包含必要的控制字(起始字符、结束字符、指令类型等)。如果指令中的数据以其原本的形式传输,则不可避免的会与指令中的控制字发生混淆。例如本例中,指令的起始字符为“@",其ASCII码值为67H,结束字符为“G",其ASCII码值为47B。假设要写入的数据中也有47H,并且数据直接以其原本的形式传输,则PLC会因为接收到了数据中的47H而停止接收,这样PLC接收到的指令将是个不完整的非法指令,很可能造成PLC的误动作。为了避免这种情况的发生,叫以用文本来传送二进制数据。通过以16进制ASCII码的格式描述数据,每个二进制的字节都叫以表示成对ASCII编码,这对编码表示这个字节的两个16进制字符。这种格式叫以表示任何的数值,仅仅使用ASCII码的30H到39H(表示0到9)和41H到46H(表示A到F)ASCII码的其余部分可以用作控制字(起始标志、结束标志、指令类刑等)。这样,数据中的47H以ASCII码的形式进行传送就变成了34H,37H两个字节,从而避免了PLC因接收到数据中的47H而停止接收的错误。表4.1上位机指令格式BYteO起始字符Byte1指令类型(读/写)Byte2目标PLC站地址(十六进制ASCII码)Byte3Byte4目标寄存器地址(十六进制ASCII码)Byte5Byte6Byte7Byte8Byte9Byte10Byte11Byte12读/写字节数M(十六进制ASCII码)Byte13Byte14要写入的数据(十六进制ASCII码)Byte15Byte16Byte17Byte18Byte19Byte20Byte21Byte22Byte23Byte24Byte25Byte26Byte27Byte28Byte29Byte30BCC校验码(十六进制ASCII码)Byte31Byte32结束字符表4.2反馈信息格式BYteO起始字符Byte1状态信息Byte2数据区(十六进制ASCII码)Byte3Byte4Byte5Byte6Byte7Byte8Byte9Byte10Byte11Byte12Byte13Byte14Byte15Byte16Byte17Byte18BCC校验码(十六进制ASCII码)Byte19Byte20结束字符

第五章下位机通信模块设计5.1STEP7-Micro/WIN32介绍简介:STEP7-Micro/WIN32编程软件是基于Windows的应用软件,由西门子公司专门为SIMATICS7-200系列可编程序控制器设计开发。主要为用户开发控制程序使用,也可实时监控用户程序的执行状态。5.1.1软件安装及硬件连接软件安装软件来源:STEP7-Micro/WIN32——西门子网站下载或光盘。安装:双击STEP7-Micro/WIN32的安装程序setup.exe,根据在线提示,完成安装。编程语言:选择英语。界面汉化:安装完后可用STEP7-Micro/WIN32中文汉化软件将编程界面和帮助文件汉化,使编程环境为中文状态。硬件连接电缆连接:PC/PPI电缆RS-232与PC机相连,RS-485与PLC的RS-485相连。模式设置:PC/PPI电缆DIP开关中1、2、3设定波特率,4选择10位或11位数据传输模式,5选择RS-232为数据通讯设备模式或数据终端设备模式。没有调制解调器时开关4、5均应设置为0。图5.1硬件连接图通信参数的设置和修改运行STEP7-Micro/WIN32,在引导条中单击“通讯”图标,或从主菜单中选择“检视”中的“通讯”项,则会出现一个通讯设定对话框。双击PC/PPI电缆的图标,将出现设置PG/PC接口的对话框,这时可安装或删除通信接口、设置检查通信接口参数等操作。设置好参数后,可双击通讯设定对话框中的刷新图标,STEP7-Micro/WIN32将检查所连接的所有S7-200CPU站(默认站地址为2),并为每个站建立一个CPU图标。5.1.2软件功能介绍(1)基本功能创建用户程序、修改和编辑原有的用户程序。设置PLC的工作方式和参数,上装和下装用户程序,进行程序的运行监控。具有简单语法的检查、对用户程序的文档管理和加密等功能,并提供在线帮助。(2)主界面各部分功能1.菜单条引导条指令树程序编辑器符号表状态图表数据输出窗口状态条程序察看局部变量表图5.2菜单条2.工具条提供简便的鼠标操作,可用“检视”菜单的“工具栏”项自定义工具条。可添加和删除3种按钮:标准、调试和指令。3.引导条提供按钮控制的快速窗口切换功能。可用“检视”菜单的“浏览栏”项选择是否打开。引导条包括程序块(ProgramBlock)、符号表(SymbolTable)、状态图表(StatusChart)、数据块(DataBlock)、系统块(SystemBlock)、交叉索引(CrossReference)和通讯(Communications)七个组件。一个完整的项目文件(Project)通常包括前六个组件。4.指令树提供编程时用到的所有快捷操作命令和PLC指令。可用“检视”菜单的“指令树”项决定是否将其打开。5.输出窗口显示程序编译的结果信息。6.状态条显示软件执行状态,编辑程序时,显示当前网络号、行号、列号;运行时,显示运行状态、通讯波特率、远程地址等。7.程序编辑器梯形图、语句表或功能图表编辑器编写用户程序,或在联机状态下从PLC上装用户程序进行程序的编辑或修改。8.局部变量表每个程序块都对应一个局部变量表,在带参数的子程序调用中,参数的传递就是通过局部变量表进行的。(3)系统组态1.数字量输入滤波允许为部分或全部数字量输入点设置输入滤波。检视®系统块®输入过滤器。延时时间范围为0.2~12.8ms,默认值为6.4ms。图5.3数字量输入滤波2.模拟量输入滤波S7-200CPU222、224和226在模拟量输入信号变化缓慢的场合,可以对不同的模拟量输入选择软件滤波。检视®系统块®模拟量输入过滤器。系统默认参数为:模拟量输入点全部滤波、采样次数为64、静区值为320。图5.4模拟量输入滤波3.设置脉冲捕捉如果数字量输入点有一个持续时间小于扫描周期的脉冲,则CPU不能捕捉到此脉冲,S7-200CPU为每个主机数字量输入点提供脉冲捕捉功能。图5.5设置脉冲捕捉4.输出表的设置系统块®输出表。冻结输出:RUN®STOP后,所有数字量输出点将冻结在CPU进入STOP方式之前的状态;否则:数字量输出点的状态输出表来设置图5.6输出表的设置5.PLC断电后的数据保存方式CPU用EEPROM保存用户程序、程序数据及CPU组态数据;用一个超级电容器,使PLC在掉电时保存整个RAM存储器中的信息。S7-200PLC还可选用存储器卡保持用户程序。CPU模块在STOP方式下,点击菜单“PLC”中的“程序存储器卡”项就可将用户程序、CPU组态信息及V、M、T、C的当前值复制到存储器卡中。单击“系统块”的“保存范围”标签,可选择PLC断电时希望保持的内存区域。最多可定义六个要保存的存储区范围,设置保存的存储区有V、M、C和T。对于定时器,只能保存定时器TONR,而且只能保持定时器和计数器的当前值,定时器位和计数器位不能保持,上电时定时器位和计数器位均被消除。对M存储区的前14个字节,系统缺省设置为不保持。6.CPU密码的设置默认是1级,相当于关闭了密码功能。在“系统块”窗口中点击“密码”标签。首先选择适当的限制级别(如2、3级),需输入密码(密码不区分大小写)并确认密码。要使密码设置生效,必须先运行一次程序。如果忘记了密码,必须清除存储器,重新下载程序。5.1.3编程软件的使用一、项目生成1.新建项目(1)确定PLC的CPU型号(2)项目文件更名(3)添加一个子程序(4)添加一个中断程序(5)编辑程序2.打开已有项目文件3.上装和下装项目文件图5.7项目生成二、程序的编辑与传送以梯形图编辑器为例,语句表和功能块图编辑器的操作类似。输入编程元件梯形图的编程元件(编程元素)主要有线圈、触点、指令盒、标号及连接线。输入方法:指令树窗口中双击要输入的指令,就可在矩形光标处放置一个编程元件。工具条上的编程按钮。单击触点、线圈或指令盒按钮,从弹出的窗口下拉菜单所列出的指令中选择要输入指令单击即可。图5.8输入编程原件2.插入和删除在编辑区右击要进行操作的位置,弹出图示的下拉菜单,选择“插入”或“删除”选项,弹出子菜单,单击要插入或删除的项,然后进行编辑。也可用菜单“编辑”中相应的“插入”或“编辑”中的“删除”项完成相同的操作。图5.9插入和删除3.符号表将梯形图中的直接地址编号用具有实际含义的符号代替。方法:在编程时使用直接地址(如I0.0),然后打开符号表,编写与直接地址对应的符号(如与I0.0对应的符号为start),编译后由软件自动转换名称。另一种是在编程时直接使用符号名称,然后打开符号表,编写与符号对应的直接地址,编译后得到相同的结果。图5.10符号图4.局部变量表(1)局部变量与全局变量程序中的每个POU(ProgramOrganizationalUnit,程序组织单元)都有64K字节L存储器组成的局部变量表。局部变量只在他被创建POU中有效。全局变量在各POU中均有效,只能在符号表(全局变量表)做定义。(2)局部变量的设置将光标移到编辑器的程序编辑区的上边缘,向下拖动上边缘,则自动出现局部变量表,此时可为子程序和中断服务程序设置局部变量。图5.11注释梯形图编辑器中的Networkn表示每个网络或梯级,同时又是标题栏,可在此为每个网络或梯级加标题或必要的注释说明。双击Networkn区域,弹出图示的对话框,此时可以在“题目”文本框键入相关标题,在“注释”文本框键入注释。图5.12注释6.语言转换语句表、梯形图和功能块图三种编程语言(编辑器)之间的任意切换。检视®STL(语句表)、LAD(梯形图)或FBD(功能块图)便可进入对应的编程环境。7.编译用户程序程序编辑完成,可用菜单“PLC”中的“编译”项进行离线编译。编译结束后在输出窗口显示程序中的语法错误的数量、各条错误的原因和错误在程序中的位置。双击输出窗口中的某一条错误,程序编辑器中的矩形光标将会移到程序中该错误所在的位置。必须改正程序中的所有错误,编译成功后才能下载程序。8.程序的下载和清除下载之前,PLC应处于STOP方式。单击工具栏的“停止”按钮,或选择菜单命令“PLC”中的“停止”项,可以进入STOP状态。如果不在STOP状态,可将CPU模块上的方式开关扳到STOP位置。为了使下载的程序能正确执行,下载前必须将PLC存储器中的原程序清除。清除的方法是:单击菜单“PLC”中的“清除”项,会出现清除对话框,选择“清除全部”即可。三、程序的打印输出单击菜单“文件”中的“打印”项,可选择需要打印的组件的复选框,如图示,图中选择打印网络1至网络21梯形图程序的主程序。但如果还希望打印程序的附加组件,例如还要打印符号表等,则所选打印范围无效,将打印全部LAD网络。图5.13程序的打印输出5.1.4程序监控与调试(1)选择扫描次数STEP7可选择单次或多次扫描来监视用户程序,可以指定主机以有限的扫描次数执行用户程序。通过选择主机扫描次数,当过程变量改变时,可监视用户程序的执行。多次扫描时,应使PLC置于STOP模式,使用菜单命令“排错”中的“多次扫描”来指定执行的扫描次数,然后单击“确认”按钮。初次扫描时则将PLC置于STOP模式,然后使用菜单命令“排错”中的“单次扫描”进行。(2)用状态表监控程序使用状态表来监视用户程序,在程序运行时,可以用状态表来读、写监视和强制PLC的内部变量。并可以用强制表操作修改用户程序,如图示。图5.14程序监控与调试1.打开和编辑已有的状态表单击目录树中的状态表图标,或菜单“检视”中的“状态表”选项均可打开已有的状态表,并对它进行编辑。多个状态表,可用状态表底部的标签切换。2.创建新的状态表用鼠标右键单击目录树中的状态表图标或单元已经打开的状态表,将弹出一个窗口,在窗口中选择“插入状态表”选项,可创建新的状态表。3.启动和关闭状态表STEP7与PLC的通信成功后,打开状态表,用菜单“排错”中的“图状态”选项或单击工具条上的“状态表”图标,可启动状态表,再操作一次可关闭状态表。4.单次读取状态信息状态表被关闭时,用菜单命令“排错”中的“单次读取”或单击工具条上的“单项读取”按钮,可以获得PLC的当前数据,并在状态表中将当前数值显示出来,执行用户程序时并不进行数据的更新。要连续收集状态表信息,应启动状态表。5.用状态表强制改变数值在RUN方式且对控制过程影响较小的情况下,可对程序中的某些变量强制性地赋值。S7-200CPU允许强制性地给所有的I/O点赋值,此外最多还可改变16个内部存储器数据(V或M)或模拟量I/O(AI或AQ)。V或M可按字节、字或双字来改变,模拟量只能从偶字节开始以字为单位(如AIW6)来改变。强制的数据将永久性地存储在CPU的EEPROM中。6.梯形图程序的状态监视利用梯形图编辑器可以监视在线程序运行状态的窗口。梯形图中显示所有操作数的值,所有这些操作数状态都是PLC在扫描周期完成时的结果。7.打开监视梯形图的方法有两种:一种方法是打开菜单“工具”中的“选项”对话框,选择“LAD状态”选项,然后选择一种梯形图的样式。梯形图可选择的样式有3种:指令内部显示地址,外部显示值;指令外部显示地址和值;只显示状态值。或直接打开梯形图窗口,在工具条中单击“程序状态”按钮。功能块图程序监视和语句表程序监视方法与梯形图程序类似,不再一一介绍。(3)S7-200的出错处理致命错误会导致PLC停止执行程序。CPU检测到致命错误时,自动进入STOP(停止)方式,点亮系统错误LED,并关闭输出。在消除致命错误之前,CPU一直保持这种状态。有些错误可能会使PLC无法进行通信,此时在计算机上看不到CPU的错误代码。这表示硬件出错,CPU模块需要修理,修改程序或清除PLC的存储器不能消除这种错误。非致命错误非致命错误会影响CPU的某些性能,但不会使用户程序无法执行。5.2下位机通信模块设计5.2.1PLC程序执行过程PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,运行RCV指令使端口处于接受状态。RCVcomplete中断服务程序用来处理接收完成中断事件,它会将接收缓冲区的十六进制ASCⅡ码还原成数据并保存,同时置位Verify子程序的触发条件(M0.1)。Verify子程序首先复位本身的触发条件以防止子程序被重复调用,然后求出接收缓冲区中指令的BCC效验码并与指令中的BCC效验码进行对比。如果相等则置BCC码效验正确的标志位(M0.0)为1;如果指令格式正确而BCC码不相等,则发送代表BCC效验码错误的反馈信息;如果指令格式不正确,则返回代表指令格式错误的反馈信息。Read子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为读指令、BCC效验码正确。当条件满足时,Read子程序被执行。Write子程序首先禁止RCV,然后将指令所要读取的数据转换成十六进制ASCⅡ码并写入发送缓冲区、计算BCC效验码、最后发送反馈信息。Write子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为读指令、BCC效验码正确。当条件满足时,Write子程序被执行。Write子程序首先禁止RCV,然后将指令所要读取的数据写入目标寄存器,最后发送代表写入正确的反馈信息。PLC每接到一条指令后都会发送一条反馈信息,当反馈信息发送完毕时,会产生发送完成中断,XMTcomplete中断服务程序用来处理发送完成中断事件。在XMTcomplete中断服务程序中所要执行程序中所要执行的操作包括:复位BCC效验码正确的标志位(M0.0):允许RCV:BCC码寄存器清零:重新装入用于计算机BCC效验码的地址指针:接收缓冲区中存放指令结束字符的字节VB133清零(用来判断下一条指令格式是否正确)。5.2.2程序清单(1)MAIN主程序:MAIN主程序Network1LDSM0.1//第一次扫描用初始化子程序CALLinitialize//唤醒子程序initializeNetwork2LDB=VB134,VB199//指令中的站地址与本机站地址相符A.B=VB102,5//指令类型为读指令AM0.0//BCC校验码正确CCALLRead//调用读子程序Network3LDB=VB134,VB199//指令中的站地址与本机站地址相符AB=VB102,6//指令类型为写指令AM0.0//BCC校验码正确CALLWrite//调用写子程序Network4LDM0.1//指令接收完成后调用BCC校验码子程序CALLVerify//唤醒Verify子程序调用Verify子程序Network5LDSM4.5//当端口空闲时启动RCVRCVVB100,0//对端口及RCV初始化Read子程序:NNetwork1LDSM0.0//停止端口0的接收RSM87.7,1//置位RM0.0,1RCVVB100,0//禁止RCVNetwork2LDSM0.0//将数据写入发送缓冲区MOVB103,VB154//将数据的起始位放入VB154MOVB1,VB155//状态信息HTA*VD135,VB156,16//十六进制计数MOVB26,VB174MOVB21,VB153Network3LDSM0.0//计算BCC校验码FORVW177,+1,+16//与NEXT构成循环语句当SM0.0接通时,循环1执行十六次Network4LDSM0.0XORB*VD181,VB180//检验BCC校验码Network5LLDSM0.0IINCDVD181NNetwork6NNEXTNetwork7LDSM0.0HTAVB180,VB172,2//BCC校验码写入发送缓冲区Network8LDSM4.5//发送反馈信息XMTVB153,0//发送缓冲区清零Write子程序Nnetwork2LDSM0.0//装入要写入数据源的地址指针MOVD&VB115,VD145Network3LDSM0.0//写入数据ATH*VD145,*VD135,VB139Network4LDSM0.0//指令执行的反馈信息写入发送缓冲区MOVB21,VB153MOVB103,VB154MOVB2,VB155MOVB26,VB174Verify子程序Network1LDSM0.0RM0.1,1//复位verify子程序的执行条件Network2LDSM0.0//计算BBC码FORVW175,+1,+29//循环语句将循环1执行29次Network3LDSM0.0XORB*VD149,VB179//检验BCC校验码Network4LDSM0.0INCDVD149Network5NEXTNetwork6LDB=VB179,VB140//当BCC校验码正确时,M0.0置1AB=VB133,71SM0.0,1Network7LDB=VB133,71//BBC码错误时发送反馈信息AB<>VB179,VB140MOVB21,VB153MOVB103,VB154MOVB3,VB155MOVB26,VB174RSM87.7,1RCVVB100,0XMTVB153,0Network8LDB<>VB133,71//指令格式错误或RCV超时时发送反馈信息MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论