《ppcl编程手册中文》由会员分享,可在线阅读,更多相关《ppcl编程手册中文(42页珍藏版)》请在金锄头文库上搜索。
1、 西门子楼宇科技西门子楼宇科技 现场控制器控制程序现场控制器控制程序 (PPCL) 基本概论基本概论 及指令说明及指令说明 (Powers Process Control Language, PPCL) 第第 3.0 版版 2004 年年 7 月月 27 日修订日修订 1. 基本概论基本概论 1.1 现场控制器控制程序现场控制器控制程序 (Powers Process Control Language, PPCL) 现场控制器 DDC 会经由一组顺序之指令,执行系统的控制及能源管理。PPCL 是由各种型态的指 令所构成,每一行指令皆根据一特殊的格式,来执行一特殊的任务。 PPCL 是根据已建立
2、在数据库内的系统监控点,以及事先定义的特殊逻辑点与变量来运作的。这些 特殊逻辑点具有一特定保留的点名称,并且是常驻于控制器的通讯控制卡(Line Card)内。 1.2 PPCL 程序程序 程序是一组告诉计算机如何处理指令的信息集。而 PPCL 程序包含的每一行指令,控制器会以一 行接一行(Step-by-step)的方式来处理这些程序。 1.3 PPCL 程序的操作原理程序的操作原理 PPCL 运作时,会对一组程序中每一行程序不断地执行,但每一次只执行一行程序,然后再执行下 一行程序。在最后一行程序执行完毕后(最后一行程序为行号数最大的程序) ,控制器会回到程序 的第一行,继续执行程序。 当
3、每一行程序被执行时,若该行程序具有监控点,则控制器会审视系统监控点数据库,若有需要, 监控点亦会被控制,而各监控点最后的数值或状况会被应用。换言之,每一行程序所使用的数值或 状况亦为各监控点最后的数值或状况, 而若参考之监控点为输出点, 则该点最后被控制的状况或数 值,会被程序参考,这个意思表示,在 PPCL 程序执行的过程中,一特定监控点的数值或状况可 能会改变很多次,或者没有改变。 任何未被解析的 PPCL 程序,皆不会被执行。而所谓的未被解析的 PPCL 程序是指,该行程序或 内所包含的系统监控点,没有被定义,或没有出现在网络上。 PPCL 程序内含有失效(Failed)或操作者除能(O
4、perator Disabled)监控点时之运作: 当一 PPCL 程序内所含之监控点,其操作状态为失效或已被操作者除能时,该行 PPCL 程序仍会 被执行, 而所用监控点的数值或状态, 为该点尚未失效或被操作者除能前的最后一已知数值或状态。 1.4 PPCL 程序的一般规则 1.4.1 每一部控制器,皆需要一个别的控制程序。 1.4.2 每一行 PPCL 程序,皆须具备一单独的行号,而每一个行号的数值必须在 1 至 32767 的数 值内,且必须按照数值递增的方式设定。 1.4.3 每一行 PPCL 程序,最多可包含 72 个字符,两行 PPCL 程序可利用 (&) 符号连结,而 成为单一执
5、行的程序,但此两行连结的程序,其字符不可大于 144 个字符。 1.4.4 每一个 PPCL 程序之最大内容限度,完全取决于该控制器之随机内存 (RAM) 的大小而 定。 1.4.5 PPCL 程序执行时,是依照各程序行号,由小而大,依序执行下来的。当最后一行程序 执行完毕后,控制器会自动执行程序的第一行,并且继续往下执行,周而复始。 1.4.6 一 PPCL 程序完整地被执行,是指该程序的第一行,及最后一行皆被执行过。 1.4.7 每一程序由 1 个或多个 PPCL 编辑组合。 1.4.8 每一程编辑述必须指定 1 个唯一的行号,有效的行号为 132767。 1.4.9 控制器最大行号受限于
6、控制器的总内存容量。 1.4.10 当从控制器 MMI PORT (APOGEE 除外)编辑程序时,每行最多字符数为 72,如要输 入更多字,在行末加&(AND)符号,继续在下一行编写,全行所有字符数包含&(符号), 不能超过 144 字符。 1.4.11 程序是依照它的行号顺序执行的,除非使用其它指令外,当最后一行程序后执行, 计算机会自动回动第一行程序,继续执行。 1.4.12 所有种类 Firmware 除 APOGEE 外,程序的循环,程序到最后一行都必须被执行过。 1.4.13 用于程序所有实际和虚拟的监控点,都必须定义其 Database。 1.4.14 监控点名开始为数字时,必须
7、在前缀加(at)符号。 1.4.15 子程序的过程控制中必须且唯一使用 RETURN 命令未转换执行。 除了之前规则外,以下规则应用在 APOGEE Firmware: 1.4.16 APOGEE PPCL 程序使用一个指定点名,有效的点名能使用 130 个字符,包含:A-Z, a-z, 0-9,空格,顿点,一,_,。 1.4.17 假如监控点点名用于 PPCL 中,大于 6 个字符或使用非”A-Z,0”字符,此监控点名必须使 用双引号标注,例如: 560 ON (B2SFN,”BUILDING1,AHU01,SFAN”) 第 1 点(B2SFN)不须引号,第 2 点(BUILDING1,AH
8、U01,SFAN)是长点名,必须用引号。 1.4.18 当从 APOGEE 控制器 MMI PORT 建立程序,每行最多字符数目为 66(含行号),昭果需要输 入更多,在行尾加”&”符号,继续在下一行输入字符,最多字符数允许在三行内所有字符 是 198 个(含”&”字符和行号)。 1.4.19 每一控制器执行 PPCL 包含 1 个或多个独立的程序。 1.5 PPCL 程序解析程序解析 操作员可经由操作终端机或系统报表机上,显示或打印 PPCL 程序。而每段要显示或打印的程序, 是以每部控制器的编号及 PPCL 程序的行号,为显示或打印的基准,且这些数据,必须由操作员 定义。 当 PPCL 程
9、序被显示或打印时,在每一行 PPCL 程序的启始部份,会出现此行的状态码,如下图 所式: 表表 1. PPCL 程序报表及状态码定义程序报表及状态码定义 2.编程策略编程策略 编程策略是一个策略或程序步骤的宣告, 指导方针是帮助你避免一般程序错误, 指导方针亦帮助你 编辑程序能汲执行更快,更容易继续。 PPCL 指导方针如下: 1. 程序被编辑定义在某台控制器内,不应控制不同控制器内的控制点(程序不应跨台控制)。 2.时间性的控制指令(例如:LOOP,SAMPLE,TOD,WAIT.),应该计算从程序每一 过程中最适当的值。 3.尽量使用程序库中相同控制功能于其它控制器中,登用的程序在控制器中
10、可减少测试时 间,程序逻辑错误减少到最少。你必须修改登用的程序中所对映的监控点名在控制器内, 。 4.程序行号必须使用 10 的倍数(10,20,30)或更多为起始号码,这惯例是为提供行间可做为修 改程序的使用。 5.第 1 行程序应为程序处理执行过程的开始,如果程序执行被中断(例如:某时电源失效) , 总是从程序第 1 行重新开始执行。 6.指引路径的命令(例如:GOTO)应该引导过程控制,至继续的下某行号,这是防止程序从 循环回路中停滞。 7.尽可能使用批注行号为程序逻辑提供说明,这强调一个程序设计构造的原理。 8.监控点名使用于程序中应该从意义描述功能来使用,使如监控点是监视外气温度,直
11、该命 OA TEMP 点名。 9.一个子程序最合适被使用情况,使用多个有效益的子程序区取代者直行的原则。 10.当使用时间性指令,得知控制器可能行多行程序,例如:版本为 3.0 的控制板每秒可执 行 350 行,版本为 4.0 可执行 500 行。 3.系统常驻指令系统常驻指令 Resident point 系统常驻指令: 系统常驻指令提供基本时间和系统状态讯息,指令的值能够测试或分配给其它监控点, 系统常驻指令是由控制器预先定义及保持。由于每一控制器拥为自己的系统常驻指令,系 统常驻指令不可直接跨网络使用。 PPCL 提供以下系统常驻指令: 1. Alarm count (ALMCNT) 警
12、报计数 使用:ALMCNT 的值是由控制器或 UC 所属监控点现在的 ALARM 状态的数字,当控 制器的监控点为 ALARM 状态时,ALMCNT 的值+1,当监控点回后 NORMAL 状 态时 ALMCNT 的值-1。 例句: 340 IF ( ALMCNT .GT. O ) THEN ON ( ALARM 7 ) 监控点必须定义”alarmable”,用来计算当监控点为 ALARM 状态,控制器总计接收, ALMCNT,ALMCT2 计数工作相同于加强型警报作为正常警报。 监控点特别的警报位阶并不影响”ALMCNT”和”ALMCT2”,当加强型警报监控点改变 警报位阶不会再次计数增加。
13、使如监控点失效(*PDSB*)或手控失效(*ODSB*),ALMCT 将仍计算增加各减少。 2. Alarm count2 (ALMCNT2) 警报计数(第 2) 使用:这是类似于 ALMCNT 的监控点,ALMCT2 不同为当监控点为 ALARM 状态,第二 警报计数将累加,当控制器监控点为 ALARM 状态,ALMCNT 和 ALMCT2 值都+1, 当监控点回复 NORMAL 状态,ALMCNT 和 ALMCT2 值都-1。 例句: 340 IF ( ALMCNT2 .GT. 5 ) THEN ON ( ALARM 8 ) 监控点必须定义数字监控点输入”alarmable”和 enabl
14、e ALMCT2。 3. Battery status ($BATT) 电池状态 使用:测试控制器备用电池的状态为( 0 , 50 , 100 ) 或 ( DEAD , LOW , OK ) 例句 1: 200 IF ( $ BATT .EQ. 0 ) THEN ALARM ( P26 BAT ) 例句 2: 200 IF ( $ BATT .EQ. DEAD ) THEN ALARM ( P26 BAT ) 4. Decimal time ( CRTIME ) 小数表示的时间 使用:当前的时间以小数点二位时间表示 7.15am : 7.25 7.30pm : 19.50 CRTIME 值的范
15、围由 0.0023.99721 例句 1: 510 IF ( CRTIME .GE. 6.75 .AND. CRTIME .LE. 17.50 ) THEN ON ( SFAN ) ELSE OFF ( SFAN ) CRTIME 可以用来指派当前的时间值给虚拟 LAO 点,允许你显示于动态图 POINT LOG。 CRTIME 是每秒更新。 5. Day (DAY)日/周 使用:当前每周的日期,以值(17)表示 NO Day of the Week 1 2 3 4 5 6 7 Monday Tuesday Wednesday Thursday Friday Saturday Sunday 例
16、句: 300 IF DAY ( .EQ. 1 ) THEN TOTRAN = 0 这些值与模式用 TODMOD 句子是没有关系。 6. Day of the month (DAYOFM)日/月 使用:DAYOFM 值为 131,指定任一月份的特别日的动作。 例句: DAYOFM 帮助你于特别日执行必须的动作。 7. Communications link (LINK) 使用:判断控制器(自己)联机状态 0 未联机 1 正常联机 例句: 300 IF ( LINK .EQ. 0 ) THEN ON (ALALM) 8. Month (NONTH) 月 使用:表示当前的月份 NO Day of the Week 1 2 3 4 5 6 7 8 9 10 11 12 January February March April May June July August September October November December 例句: 950 IF (MONTH .GE. 4 .AND. MONTH .LE. 10