版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章PLC锅炉控制程序概述一个锅炉监控系统主要包含一下几个部分:设备状态的采集;系统状态的采集;锅炉和各 种执行机构的控制。设备状态的采集主要是锅炉输出的状态点,循环泵和补税泵给出的状态点,以及水箱等其 他设备的状态点。锅炉输出的状态点主要包括锅炉的运行状态点、锅炉故障状态点、锅炉出水 温度、锅炉回水温度、锅炉排烟温度;循环泵和补水泵以及辅助其工作的变频设备的状态点一 般是由水泵控制柜或变频控制柜中集中取出的。水箱的液位状态一般直接送到PLC控制柜。系统状态的采集根据锅炉系统的不同有差别。一般来讲,目前设计的系统主要分为一次侧 与二次侧。一次侧的是锅炉水循环系统,二次侧水循环系统常用的换热器
2、有两种一种是板式换 热器,另一种是容积式换热器。一次侧采集的状态包括一次侧供水温度、一次侧回水温度、一 次侧供水压力、一次侧回水压力;二次侧采集的状态包括二次侧供水温度、二次侧回水温度、 二次侧供水压力、二次侧回水压力;如果需要根据室外温度实现锅炉监控系统的自动控制那么 还需要增加室外温度的采集。锅炉和各种执行机构的控制主要是对锅炉本体的启停控制和各种电动阀门的控制。这里所 说的对锅炉本体的启停控制主要是通过锅炉自身的控制器提供的控制点控制锅炉。锅炉本体自 带的控制器这里暂不介绍。锅炉提供的控制点是开关量控制点,一般是常开点。根据影响锅炉 运行的状态点的组合条件,给出允许锅炉启动信号。简单的说
3、就是需要什么样的条件锅炉才能 启动或停止。阀门的控制有两种方式,一种是开关量控制阀门打开与关闭,另一种是模拟量输 出控制阀门打开与关闭。图表1系统图第二章PLC程序设计第一节程序结构 本文中所采用的 PLC是西门子公司的产品 S7-200系列,CPU的型号是cpu226cn.西门子PLC编程工具的使用可以参照西门公司的程序使用手册或者在程序中按F1调出帮助文件参考。下面介绍一下PLC程序的主要结构。首先看图表2LC主程序通讯端口设置锅炉状态采集与落集系统状态采集采集滤波锅炉控制 自动控制 发送中断 接收中断图表2 PLC程序结构西门子PLC程序是面向结构的程序语言,结构中的主体子程序想要运行必
4、须在主程序中注 册。本文中的程序结构如图 2所示,主程序中包括了初始化子程序,数据转换子程序,锅炉控 制子程序,自动控制子程序,发送中断与接收中断。初始化子程序的作用是通讯断口的设置和一些程序中需要预置的一些常数。比如数据换算 中用到的公式里面的常数或者很长一段时间不需要改动的数值。数据转换子程序负责将采集模块采集的变量转换成我们需要的数据格式,包括采集和转换2个步骤。锅炉控制子程序控制锅炉的启动和停止,以及相关的状态输入和输出。自动控制子程序根据自动控制的理论设计完成锅炉的自动控制。具体的控制方案需要与实 际使用的图纸以及设计需求相结合,总结出一套稳定性和先进性的控制方法。发送中断和接收中断
5、子程序用于通信时的信息发送与接收。第二节PLC内存介绍既然我们知道了需要采集得数据类型和大小,以及设置数据需要得内存大小,那么我们就 能够把内存的使用标准化,即是哪类数据就用哪类规定的内存块。这样作的好处是,即使预先 不知道一个内存地址的实际意义,也能知道这个地址显示的是何种数据。下面我们详细介绍这 块内容。首先我们了解一下 PLC内存的地址范围,以西门子 S7-200系列PLC为例。被存聊内存类型CPU 221CPU 222CPU 224CPU 226传(字节. 位)V0 0 -2047 70 0 - 2047.70 0-5119.7 V 1.220 0 -51197 V 1.2300-81
6、91-7 V2工0。口 _ 10239 7 V2 000 0 -10239 7 XP10.0-16 70.0 - 16.700-15.700 -15 7Q00 15700 15700 15.70 0 -15 7M0.0- 31 700-31.700-31.70 0-317SM0.0-179 70 0 - 299 700 -649 700-50.7S00 31 10.0 31.700 31.700 -31 7T0-2550-2550-2550-256C0 2550 2550 2550-255L0.0 5g700 59.70 0 59.700-59.7图表3位地址范围被存取内存类型CPU 221C
7、PU 222CPU 224CPU 226字节0-20470 - 20470-511G V 1 250-5119 n 1 220-8191 V2000-10239 XP0-10239 VZ00IE0-160-160-150-15日0-15D-150-15D-15MB0-31D-310-310-31SMB0-1790一2的0-5490-549S30-31D-31th 310-31LB0-59D-590-590-59AC0-3D-30-30-3图表4字节地址范围被行取:内存类生CPU 221CPU 222CPU 224CPU 226字WV0 - 20460 - 2046。-5118 V 1 22D
8、- 5116 V 1.23O -81UO V 2. OU0 10238 V2 000 - 1 i)238 XPIW0-140- 140-140-14aw0 - 140- 140 - 140-14NWD - 3D0-300-300 - 30SMWD - 178O - 29 8O - 5480 - 548SW0-300- 300-30D - 30T00 2560 256C0 2550 2550 2550 -256LW0 - 5B0 580 - 5B0 - G8AC0 - 30- 30 - 3Q - 3A1W - 300- 300 -G20 - G2AQW - 30U- 3UU -620 - 62图
9、表5字地址范围被存取:内存类型CPU 221CPU 222CPU 224CPU 226双字VD0 - 20440 - 20440-5116 V 1 220-5116 V 11.230 -8189 V2 000-10236 V2 000 -10236 XPID0- 120-120-120-12QD0-120-120-120-12IMD0-280-2B0-280-28SLID0- 1760-2960-5460-546SD0-280-280-290-28LD0-560-560-560-56AC0-30-30-30-3HC0-50-50-50-5图表6双子地址范围我们看到PLC的内存分为这样几个区域I
10、离散输入和映象寄存器Q 离散输出和映象寄存器M 内部内存位SM 特殊内存位(SM0 - SM29为只读内存区)V 变量内存T 定时器当前值和定时器位C 计数器当前值和计数器位HC高速计数器当前值AI模拟输入AQ模拟输出AC累加器寄存器L 局部变量内存S SCR每个区域的具体功能可以参看西门子编程工具自带的帮助文件。第三节内存标准化分配于是我们可以我们在上一节中已经知道 PLC内存是如何分类的以及各种型号的地址范围,把这些地址按照我们的实际需要分门别类。本文中主要使用的是西门子公司的PLC,其实其他品牌PLC的内存分类和西门子公司产品的内存分类大同小异,只是名字的叫法不同而已,所以 我们可以做到
11、举一反三触类旁通。下面我们结合实际的例子讲清楚内存如何标准化。PLC内存中的I区、Q区、AI区和AQ区使用范围的大小一般来说是根据我们在工程中的 实际需要配置的。我们工程中的数字量状态采集用I区,如锅炉的故障状态、水泵运行状态、水箱液位等等这些只有通断信号,没有范围变化的信号。同理, Q区是数字量的输出,如锅炉 的启停、阀门的开关控制信号等等;AI区和AQ区分别是采集和输出连续变化的模拟量通道,例如锅炉排烟温度、电动阀门开度、锅炉压力、系统压力等等。这些地址的分配是由PLC自动分配的,可以已经连接的 PLC上读出。内存的标准化主要是除 I/Q/AI/AQ 等区域的标准化。从现实出发,我们工程中
12、经常用到的 就是CPU222、CPU224和CPU226这三个型号的 PLC。如果想让我们的程序在这三个型号的 CPU中都能运行,那么我们就必须选内存范围最小的CPU,内存范围最小的是 CPU222。我们就把CPU222中的程序当作模板。CPU222中VD区的范围是 0 2044, MD的范围是 0 28, AC的范围是03。我们之所 以用VD/MD/AC 区来说明范围大小是因为 D表示Double Word是32位的地址,而1位位地址(如 V0.0)、8位字节地址(如 VB0)、16位字地址(如VW0)都是包含在这个范围内的。了解了上述内容后,我们开始进入本中最主要的部分一一格式化标准。一、
13、锅炉及其相关设备的状态格式:锅炉和阀门的控制使用的是开关量输出,锅炉有启动与停止两种动作,阀门也是开启和关 闭两种动作。所以我们可以把这些控制动作归结在一个字节内表示。如下表:控制字节定义如下:位说明锅炉启动锅炉停止阀门开启阀门关闭允许启动位次序01234567图表7控制字节定义位说明手动启动手动停止自动启动自动停止自动手动位次序0123456图表8自动手动控制位说明液位状态 低限报警液位状态 高限报警锅炉房 燃气报警计量间 燃气报警位次序01234567图表9报警输出字节反馈字节的定义如下:位说明锅炉运行 状态锅炉故障流水开关 状态阀门当前 状态水泵运行 状态水泵故障位次序01234567图
14、表10状态字节定义位说明液位状态 低限报警液位状态 高限报警锅炉房 燃气报警计量间 燃气报警位次序01234567图表11报警输入字节锅炉的数量是有限的,于是我们把控制字节和状态字节的使用做数量上的限定和分配。目前的情况来看,我们一个 PLC能控制的锅炉数量最多是 10台,理由是我们的 PLC上I/O数 量是有限的。所以我们把控制字节规定使用 10个字节,状态字节规定10个字节,预留30个字 节。这样我们就标准化了锅炉的控制。地址范围规定从 VB0-VB49,其中VB0-VB9为锅炉控制字节,MB30-MB39为自动或手动控 制字节,VB10-VB19为影响锅炉运行的状态字节。 VB20-VB
15、24 为报警输出字节, VB25-VB29 为报警输入字节,VB40-VB49为预留字节备用。二、各种模拟的输入输出标准化 接下来我们介绍锅炉控制系统中的各种模拟量如何配置内存。我们的锅炉系统中存在大量的模拟量信号,这些信号一般来说输入都是由模拟量采集模块将连续的变化量(大部分为 4 20mA的电流信号,0 5V或0 10V的电压信号)转换离散的 数字量,存储到PLC内存里;输出是由模拟量输出模块将我们要输出的存储在内存中的数字离 散信号转换为电压信号或者电流信号。无论是内存中采集上来的数值还是我们输出的数值都不 是我们得到的理想的数值,还需要转换程序将这些量转换成可读懂的数据。数据的转换我们
16、放 在下面的章节介绍。锅炉控制系统中的模拟量输入值主要是:锅炉出水温度、锅炉回水温度、锅炉排烟温度、锅炉出水压力、锅炉回水压力、一次供水 压力、一次回水压力、一次供水温度、一次回水温度、采暖供水温度、采暖回水温度、采暖供 水压力、采暖回水压力、生活供水温度、生活回水温度、生活供水压力、生活回水压力、水流 量、供热量、阀门开度、室外温度、变频器频率等等。根据设计院设计的不同,所需要采集的 数据种类不同。锅炉控制系统中的模拟量输出值主要是:各中需要模拟量控制的阀门开启值和变频器的给定频率。了解了上述内容,我们就能够标准化内存使用,具体的内存分配如下所述:考虑到这些模拟量经过程序转换之后一般为实数类
17、型(REAL)的数值,所以每个数值存储到内存后所占用的内存空间为 4个字节,即32位的数值。那么我们可以这样标准化采集量。1、锅炉相关的数值内存分配锅炉出水温度(4个字节)锅炉回水温度(4个字节)锅炉出水压力(4个字节)锅炉回水压力(4个字节)锅炉排烟温度(4个字节)一共位20个字节或者说5个双字。因为一个 PLC控制锅炉台数的上限是10台,所以总供需要 200个字节。于是我们把VB100-VB299的内存段分配给与锅炉相关的采集值。详细的分配是:-,f j数值名称 锅炉台软锅炉出水温度锅炉回水温度锅炉出水压力锅炉回水压力锅炉排烟温度第一台VD100VD104VD108VD112VD116第二
18、台VD120VD124VD128VD132VD136第三台VD140VD144VD148VD152VD156第四台VD160VD164VD168VD172VD176第五台VD180VD184VD188VD192VD196VD200VD204VD208VD212VD216第七台VD220VD224VD228VD232VD236第八台VD240VD244VD248VD252VD256第九台VD260VD264VD268VD272VD276VD280VD284VD288VD292VD296图表12锅炉相关模拟量采集存储地址2、一次侧采集值内存分配一次侧采集值总共只有 4个一次出水温度(4个字节)一次
19、回水温度(4个字节)一次出水压力(4个字节)一次回水压力(4个字节)共16字节,制定分配区域VB300-VB399数值名称一次出水温度一次回水温度一次出水压力一次回水压力起始位置VD300VD304VD308VD312图表13 一次侧模拟量采集存储地址3、采暖采集值内存分配采暖出水温度(4个字节)采暖回水温度(4个字节)采暖出水压力(4个字节)采暖回水压力(4个字节)采暖区电磁阀开启值(4个字节)不同的系统设计不同,有些系统分为不同的采暖区域,不过数量上最多不超过10个区域。每个区域共使用20个字节所占内存空间为 200字节。因此我们制定分配给采暖数据的内存区域为 VB400-VB599一、一
20、数值名称 采暖门采暖出水温度采暖回水温度采暖出水压力采暖回水压力阀门开度采暖一区VD400VD404VD408VD412VD416采暖二区VD420VD424VD428VD432VD436采暖三区VD440VD444VD448VD452VD456采暖四区VD460VD464VD468VD472VD476采暖五区VD480VD484VD488VD492VD496米暖六区VD500VD504VD508VD512VD516采暖七区VD520VD524VD528VD532VD536采暖八区VD540VD544VD548VD552VD556米暖:九区VD560VD564VD568VD572VD576采暖
21、十区VD580VD584VD588VD592VD596图表14采暖区模拟量采集存储地址4、生活热水采集值内存分配 生活热水出水温度(4个字节)生活热水回水温度(4个字节)生活热水出水压力(4个字节)生活热水回水压力(4个字节)生活热水区电磁阀开启值(4个字节)不同的系统设计不同,有些系统分为不同的生活区域,不过数量上最多不超过10个区域。每个区域共使用20个字节所占内存空间为 200字节。因此我们制定分配给生活热水数据的内存区域为VB600-VB799数值名称 生活区、生活热水 出水温度生活热水 回水温度生活热水 出水压力生活热水 回水压力阀门开度生区VD600VD604VD608VD612V
22、D616生活二区VD620VD624VD628VD632VD636生活三区VD640VD644VD648VD652VD656生活四区VD660VD664VD668VD672VD676生活五区VD680VD684VD688VD692VD696生活六区VD700VD704VD708VD712VD716生活七区VD720VD724VD728VD732VD736生活八区VD740VD744VD748VD752VD756生活九区VD760VD764VD768VD772VD776生在十区VD780VD784VD788VD792VD796图表15生活区模拟量采集存储地址5、其他采集值内存分配这里我们考虑剩余
23、的模拟采集量种类已经不多,而且每类数量也不多。暂设计每类最多5个数值,分配20个字节。而且暂时考虑的种类是:水流量(4个字节)共5个,占用20字节;供热量(4个字节)共5个,占用20字节;室外温度(4个字节)共5个,占用20字节;变频器频率(4个字节)共5个,占用20字节;上述四个模拟量值只用到变频器频率VB869如需其他采集值内存分配地址顺延 .总分配区域为 VB800-VB899水流量:值名称加里四二流里二流量四流里五起始位置VD800VD804VD808VD812VD816图表16水流量模拟量采集存储地址供热量:值名称供热量一供热量二供热量三供热量四供热量五起始位置VD820VD824V
24、D828VD832VD836图表17供热量模拟量采集存储地址室外温度:值名称室外温A室外温度二室外温度三室外温度四室外温度五起始位置VD840VD844VD848VD852VD856图表18室外温度模拟量采集存储地址变频器频率:值名称变频器频率一变频器频率二变频器频率三变频器频率四变频器频率五起始位置VD860VD864VD868VD862VD866图表19变频器频率模拟量采集存储地址6、模拟输出内存分配模拟量输入分配完后我们开始为输出用的模拟量分配内存。在锅炉控制系统中,通过模拟两控制的设备无非两种,一种是各种电动阀门,另一种是变 频器的频率给定。而且,这两类设备的数量也是非常有限的。我们这
25、里考虑各种阀门总共数量 最多为10个,变频器数量最多 10个。因此,对于模拟量输出所占用的内存分配共需要内存40个字节,考虑到可能有额外的设备需要控制,所以总共分配100个字节,范围从 VB900-VB999电动阀门开启值:值名称阀门一阀门二阀门三阀门四阀门五起始位置VW900VW904VW908VW912VW916值名称阀门六阀门七阀门八阀门九阀门十起始位置VW920VW924VW928VW932VD936图表20模拟量输出存储地址变频器给定值:值名称变频器一变频器二变频器三变频器四变频器五起始位置VW940VW944VW948VW952VW956值名称变频器六变频器七变频器八变频器九变频器
26、叶起始位置VW960VW964VW968VW972VW976图表21模拟量输出存储地址三、通信程序内存标准化本文使用的是西门子 PLC自由口协议(西门子产品的通信端口设置详见软件帮助或产品手册),尽管不同公司产品的通信口用法不同,但还是有规律可循的。通信程序一般分为三步分:1、端口设置部分;2、发送子程序部分:3、接收子程序部分。我们只要在制定的内存填上需要的数据,然后启动通信端口开始通信就可以传输数据了。详细的通信程序介绍我们放在下面的章节,此处我们先给通信程序分配固定的PLC内存。在锅炉控制系统中,通信的主要目的是为了上传采集数据和下传设备的给定值(设定值)。而且通信协议不是很复杂,因此,
27、我们给每个需要和PLC通信的设备分配200个字节的内存。考虑用到的设备数量最多不超过5个,我们分配VB1000 VB1999, MB0MB4作为这个5个设备的内存使用区。实际使用的时候,我们经常会遇到几个设备使用相同的发送区,发送相同 的命令。所以这段内存可以灵活使用。四、初始化程序内存使用标准化初始化程序的作用有两个,一个是配置通信端口,另一个是设置初始值。根据经验,初始化区域分配 500个字节的内存已经足够使用。 所以,我们将VB2000-VB2499 段的内存分配给初始化程序。五、自动控制程序内存使用由于每个系统的设计和结构不同,因而自动控制程序的内容也不同。我们这里只能根据以 往经验分
28、配1500个字节,范围 VB2500 VB3999的内存地址给自控程序使用。对于一般的锅 炉控制系统已经足够使用。自控程序包括:数据转换程序和锅炉控制程序。建议VB2500-VB2699作为锅炉控制程序使用,数据转换使用VB3000-VB3999 。我们在代码分析中详细讲解这两个程序。第四节代码分析与例程讲解 第一部分数据转换程序首先我们介绍一下为什么要进行数据的转换。原因就是我们从变送器传送到采集模块的信号为电压信号或电流信号,这些信号经过模数转换程序把原来连续的物理量转换为可被PLC内存存储的离散的数字量。内存中的数字量的形式也不是我们平常使用的格式,内存中一般为16位的二进制数据,而我们
29、在显示设备上需要的是十进制的数值。所以就必须通过转换程序把二 进制数值转换为我们需要的十进制数值。下面我们结合代码介绍数据转换程序一、PLC模拟量模块转换程序1、程序代码符导理幽数据类型LW0输入INV/ORDLD2修正葩INREALLW5果样次数INVOROL03比例值INREAL INLD12累加器IN_OUTREALLW16计数器IN_OUIWORD此;T emp_hits_avIN_OUTrealIN-OUTLD22输出OUTREALTITLE=PLC模块数据转换程序Network 116位(一个字)的数据转换为实数类型的数据,并且启/采样:这段代码主要作用是把 动计数器和累加器LDS
30、M0.0ITDLW0, LD26/16整数转换为32位整数DTRLD26, LD30/32位整数转换为实数+RLD30, LD12启动累加器INCWLW16启动计数器Network 2/滤波与转换:这段代码通过一系列运算进行数据滤波,并且将数值转换为可读性很好/的十进制数据。同时累加器与计数器归零便于下一次采集使用。LDW= LW16, LW6比较当前采样次数是否等于预制采样次数ITD LW6, LD42将采样次数有16位整数车t换位32位实数DTR LD42, LD46MOVR LD12, LD18 /R LD46, LD18 MOVR 0.0, LD12 MOVW +0, LW16 -R
31、6400.0, LD18*RLD8, LD18+RLD2, LD18Network 3LDSM0.0MOVR LD18, LD22Network 4LD SM0.0 CRET求出采样平均值清空累加器清空计数器转换为十进制数值修正输出返回主程序我们可以注意到,这里所使用的内存全部是L内存的。我们这样做的目的是想把这段程序作为一个可以被其他程序使用的子程序,所以使用的是局部变量。子程序容易移动;我们可以 单独挑出一个功能,并将其复制至其他程序中,而无需或很少需要重复操作。注释:V内存的使用限制子程序的可移植性,因为一个程序的V内存地址赋值可能与另2、变量说明PL阖据转联|输入输出,修正值- 果祥次
32、公- 比例值- 里加需- 计数器 Temp z个程序中的赋值发生冲突。相反,将局部变量表用于所有地址赋值的子程序却很容易移动,因 为不必担心会出现编址冲突。(详细说明参照西门子公司编程工具帮助文件)输入:需要转换的采集量(16位整数)修正值:对转换后的数据做修正(实数)采样次数:采木的次数(16位整数)比例值:通过另外一个子程序计算出来的数值(实数)累加器:一个临时存储累加值的内存(实数)计数器:一个临时存储当前采样次数的地址(16位整数)Temp_hits_av:临时存储输出值的地址(实数)输出:我M亲要的结果(实数)3、求比例值的子程序 程序代码:符号I变量类型I数据类型ENINBOOLL
33、DOINREALLDUINREALLD8H_plcINREAL JLD12中已!INREALIN.OUTLD16outcomeUTREALTITLE=求比例值的子程序Network 1/根据实际值的上下限和PLC采集值的上下限,计算出实际值与采集值的比例LD SM0.0MOVR LD0, LD20-R LD4, LD20实际值上限减去实际值下限,求出差值1MOVR LD8, LD24采集值上限减去采集值下限,求出差值2差值1除以差值2求出比例值-RLD12, LD24MOVR LD20, LD16/RLD24, LD16Network 2LD SM0.0CRET返回主程序4、比例值计算子程序变
34、量说明H :实际值上限(实数)L :实际值下限(实数)H_PLC : PLC采集值上限(实数)L_PLC : PLC采集值下限(实数)Outcome:输出的比例值(实数)H和L表示的是实际值上下限,所谓实际值就是变送器的量程范围。例如:一个温度传感器的量程是0C 200C,那么将200赋值给H,0赋值给L即可。H_PLC和L_PLC是PLC的采集值,范围一般在 6400.0 32000.0。Outcome:这个是计算结果,也就是实际值与采集值的比例。二、RM417采集模块数值转换程序RM417模块是我们经常用到的一种模拟量采集模块技术指标如下:通道数:单端16通道输入信号范围:0 方V; 5V
35、; 0-10V; 0-20mA 4-20mA 20mAA/D转换分辨率:12BitA/D转换时间:20kHz(单通道)处理芯片:AT89C2051通讯方式:RS485 口,2线制驱动距离:1200米通讯格式:9600-8N1通讯协议:被动查询输出数据格式:12Bit 16进制数据输出稳定度: 1 Bit隔离电压: 500V供电电压:DC24Vb 1% 100mA端口瞬间电压保护: 10V端口 RC滤波:20kHZ从技术指标中我们可以看出,这个模块的输出数据格式是12Bit 16进制数据,而我们需要的是实数型的数据,所以必须将模块输出数据转换为我们需要的数据格式。符号变量类型数据类型ENINBO
36、OLLW0输入INWORDLW2LmoduleIN.OUTLD4divedIN-OUTREAL JLD8输出IN_DUTHEAL1、程序代码:TITLE=RM41激据转换程序Network 1LD SM0.0MOVW LW0, LW12/-I LW2, LW12/ITD LW12, LD14DTR LD14, LD18MOVR LD18, LD8/dived/R LD4, LD8/输入值模块采集值下限是模块采集值上下限差值 输出结果Network 2/返回主程序LD SM0.0CRET/返回主程序2、RM41檄据转换程序变量说明输入:模块采集的数据(16位整数)I_ module:模块采集数据
37、的下限(16位整数)Dived:模块采集数据上下限的差值(16位整数) 输出:是一个比例值,表示在实际值范围内的比例。比如温度范围0200C,那么,输出X 200 =实际的温度值。三、转换程序的使用OnI _I%望燧转兼Fhj1 1AIWO-输入输出-VD3000.0-修正值50-来祥茂VD2010-比例值VD201-1-累加器VW2018-计数器VD390O-Tew图表22 PLC模拟量输入转换图表23 RM417模拟量转换通过将各种需要的数值导入数据转换功能块,我们就可以直接得到结果。当然,这些需要导入的数据是我们预先要计算出来或在初始化程序中设置的。要注意的问题是,RM417通过通信接收
38、后的数据是 ASCII码,需要转化为 2进制的数据。 上面的文章提到了过,通信内存区使用 VB1000-1999 ;初始化内存使用 VB2000-VB2500 ;数据转换内存使用 VB3000-VB3999 。所以,我们只要知道这段内存的地址,即使没有注释也可以了解这段内存的作用。第二部分通信程序我们这里介绍的通信程序,主要是PLC和RM417之间的通信。PLC与其他设备的通信程序和这个程序大同小异,只是发送区的配置不同。一、协议介绍上位机下传4个ASCII字母: 0 1 R其中旗前导符,01 为RM417的模块号,R 为读数据,则 RM417返回66个ASCII字符,共66个字节,这66个字
39、符是16个通道的数据, 每4个ASCII字符为一个通道,共 4X 16 = 64个字符,最后两个字符为校验和。每个通道的4个ASCII码字符,是一个十六进制字,例如:收到 30 45 45 45四个字节显示 为0FFF,对应0FFFH十六进制数,也就是十进制 4095,如果输入范围选择为 0 - 5V ,说明通 道上加的是5V信号。校验和是收到的 64个字节异或的结果,这个结果是十六进制的一个字节,用 2个ASCII 字节显示。例如:收的前64个字节的异或结果为 7AH ,则校验和的两个字节为 37 41 ,显示为7A。在RS485的端子处,有一个跳线,用于选择终端匹配电阻,当模块处于RS48
40、5双绞线的终点时,应使其短路,选择使用终端匹配电阻,当模块处于RS485线的中间位置时,不要短路跳线。二、通讯程序代码分析 按功能介绍各个组成部分Network 1 /通讯设置/ Network CommentLD SM0.1MOVB 16#09, SMB30MOVW +0, VW1000ATCH INTO, 8MOVB 0, SMB35ENINetwork 2LD SM0.0S M0.0, 1通信需要的各种参数也在初始化中设置。 以下为通信设置的程序:第一次扫描执行初始化将SMB30 (通信口 1)设置为十六进制的 09即00001d01绿色部分00代表:无校验蓝色部分0代表:每个字符8个数
41、据位红色部分010代表:通信速率为 9600bps黄色部分01代表:使用自由口协议将计数器VW1000清零连接中断0,中断事件8端口 0:接收字符设置定时中断 1的时间间隔(从 1至255,以1毫秒为 增量)。/设置通信允许中断允许(ENI)指令全局性启用所有附加中断事件进程。本程序中使用2个中断,一个发送中断 int_1和一个接受中断int_0Int_0 接收中断LD SM0.0DTCH 11中断指令取消中断事件(EVNT11 定日中断1)与所有中断例行程序之间的关联,并禁用中断事件。R M0.0, 1禁止通信Network 2LDSM0.0+I +1, VW1000接收字符个数的计数器+D
42、+1, AC1MOVB SMB2, *AC1接收字符Network 3 当接收字符到达指定个数66个时把计数器清零并置位通信允许位,中断返回LDW= +66, VW1000MOVW +0, VW1000S M0.0, 1Network 1LDSM0.0MOVD&VB1100, AC1MOVB4, VB1010MOVB, VB1011MOVB0, VB1012MOVB1, VB1013MOVBR, VB1014XMTVB1010, 0DTCH11Int 1 发送中断CRETI设置发送字节个数发送的第一个字节发送的第二个字节发送的第三个字节发送的第四个字节传送(XMT )指令在自由端口模式中使用,
43、通过通讯端口0传送从地址VB3110开始的数据。中断指令取消中断事件(EVNT11 定日中断1)与所有中断例行程序之间的关联,并禁用中断事件。RM0.0, 1禁用通信Network 2LDSM0.0中断返回CRETINetwork 1 /通讯设置LDSM0.0AM0.0ASM0.5EUMOVB0, VB1100MOVB5, SMB35量)。ATCH INT1, 11同时还要为通信设置一个时间,这个设置要在主程序中完成。通信允许位在1秒钟的循环周期内,接通为 ON 0.5秒关断为OFF 0.5秒/数据接收区VB1000-VB1999 , 200个字节,100 100,那么可以扩大区段定时中断1的
44、时间间隔(从 1至255,以1毫秒为增这里接收区的地址可以根据自己的需要改变,我们的通信内存分配位 属于这段的内存可以作为接收字符使用。习惯上我们规定每个通信端口分配 个作为发送段,100个作为接收段。如果发送或者接收的字符数量大于 的范围。第三步分锅炉控制程序锅炉控制程序也是控制系统的核心部分。锅炉控制程序的目的是保障锅炉的正常工作,故 障时立即报警,并准确判断报警位置,为锅炉操作人员提供最大的方便。锅炉控制系统分为两种方式:自动控制与手动控制手动控制是最基本的控制功能,熟悉了手动控制的方式与方法对我们理解锅炉的自动控制 有非常大的帮助。一、锅炉的启动和停止需要控制的设备主要有锅炉燃烧机、锅炉碟阀、变频器、三通调节阀等等。锅炉燃烧机控 制锅炉的启动和停止,锅炉碟阀控制锅炉水循环的通断,通过变频器可以控制泵的运转实现系 统水流的循环,三通阀的设置主要是为了节能的需要,可以调节整个系统的热量分配。1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红包diy活动策划方案
- 线上学校读书节活动方案
- 纳税体验活动方案
- 数字电路基础教学设计方案
- 五华区洁净室施工方案
- 开学数字营销方案
- 临近施工方案
- 私房网店营销方案
- 一层变两层阁楼施工方案
- 学习会展营销方案
- 人工智能科技有限公司ITSS补贴申报答辩资料
- 系统动力学课件与案例分析
- 北京市海淀区2022-2023学年高三上学期期中英语试题(解析版)
- 乳品评鉴师技能理论考试题及答案
- 中医儿科外治
- JGJ8-2016建筑变形测量规范
- 武汉市工伤人员医疗、康复、器具配置费用申报表
- 江西省新余市2023-2024学年八年级下学期期末质量监测物理试题
- (高清版)JTG D81-2017 公路交通安全设施设计规范
- (正式版)QBT 8020-2024 冷冻饮品 冰棍
- 小班儿歌《袋鼠爱跳高》课件
评论
0/150
提交评论