0 概述
宝钢冷轧厂精整车间80年代中期引进20余套德国AEG公司的CP80PLC系统,但该产品是70年代CPM系统的机型,其诊断维护功能不全,处理一个故障接点往往要花几个小时,无人机接口、无存储、无记录等欠缺已随时间推移变得越来越明显;加之CP80机型已不再生产,备件来源中断,精整的设备已运行了8年多,设备故障会逐渐增加,造成停机停产。
解决这些问题的唯一方法是用目前国际主流机型去替换AEGCP80。据不完全统计,整个宝钢有50余套这样的系统,国内冶金企业还有大量的此类系统,如果逐套消化吸收,再移植到其它系统上,其工作量之大、花费时间之多将难以接受。而在研究两套系统硬、软件结构的基础上开发出自动移植软件包,将AEGCP80的指令系统移植到其它系统上却是一个非常有意义的方法。据此我们选择了西门子S5?135U作为移植的目标机型。这主要因为S5系列PLC是国际主流机型,具有先进的通信、控制功能,能满足工业生产现场的各种控制要求,为国内尤其是冶金系统所熟悉和认可。
1 系统硬件配置
S5-135U机箱有21个模板槽,系统可有一个主机箱带8个扩展机架,可与CP80系统机架1对1替换。
AEGCP80的CPU可选用性能指标远远超过它的6ES5928-3UA12替代。
AEGCP80开关量输入模板为32位的,电压等级有24V、60V二种。为了统一电平输入标准,采用统一24V电源供电方式,因此可选用西门子公司的32位、24V电平的开关量输入模板6ES5430-4UA13完全替代。对于有中断要求的输入信号,可选用带中断接收功能的6ES5432-4UA12实现。对于不要求中断的输入信号,用带中断接收功能的此输入模板通道,与正常的开关量输入模板功能完全一致。AEGCP80开关量输出模板为32位,电压等级为24V,选用西门子24V电平、32位的6ES5451-4UA13可替代。
对于AEGCP80的模拟量输入输出模板,根据现场实际情况,可选用西门子S5系列的模拟量输入模板6ES5460-4VA12(带隔离8路),6ES5465-5UA12(无隔离16路),6ES5463-4UA12(带隔离4路),6ES5466-3LA11(带隔离8个差动输入或16个单端输入)和输出模板6ES5470-4VA12(±10V,0~20mA),6ES5470-4UB12(±10V),6ES5470-4UC12(+1~5V,+4~20mA)进行替代。
西门子S5系列的高速计数器模板6ES5242-1AA32有7个高速计数器通道,计数频率可达2MHz,计数器由16位组成。AEGCP80的高速计数器模板为2路双向计数,在读脉冲计数值和启动计数通道时,2路信号需作切换操作,既影响运行速度,软件编程也很繁琐(需用汇编语言编写子程序)。如果采用西门子的高速计数模板替代以后,除功能完全能满足要求以外,技术指标更好,更先进。
2 转换软件的开发
AEGCP80到S5-135U指令程序的转换包括3个部分:(1)由CP80代码得到其指令程序文件;(2)由CP80程序文本文件得到S5-135U程序文件,此转换是完成CP80程序到S5-135U语句表的变换;(3)将S5-135U程序文本文件转换为可执行代码。
2.1 由CP80代码得到其指令程序文件
此转换过程在CPM操作系统下进行,先采用编程器读取CP80原代码文件。一个完整的CP80程序往往由多段程序组成,如文件名.VL1,文件名.VL2,文件名.VL3等;在转换过程中,一段一段地对程序文件进行变换;完成变换后的文件,也是一段一段的ASCII码程序文本文件,需在微机的文本编辑工具(如WORD、记事本)下进行合并、整理,去掉多余的VCISTENOP语句,这样完成了整个程序的变换。
2.2 由CP80程序文本文件得到S5-135U程序文件
此转换软件在Windows95下采用VB软件开发而成。
2.2.1 建立对应的数据块
在CP80指令系统中有256个字的数据块DW0~DW255,用于存储时延常数以及高速计数器计数值,数学运算参数等;在西门子S5-135U指令系统中,可相应建立一个256个字的数据块DB11,对其进行替代。
CP80指令系统中采用的中间标志W0~W4095共计4096个单元,而西门子指令系统中的中间标志F0.0~F255.7共计2048个单元,容量上不能对其进行替代。为此定义一个256个字的数据块DB10,即D0.0~D255.15共计4096个单元对其进行替代。
西门子的高数计数器模板6ES5242-1AA32要求一个专用数据块DB178,用于存放1#~7#通道的初始计数值、当前计数值、门控中断和输出中断的命令字1#~5#等。1#~5#通道14个字,6#、7#通道17个字,数据块DB178共计有120个字的存储空间。
2.2.2 输入输出地址变换
AEGCP80系统可配开关量输入输出板最多32块,输出板编号范围从A00~A31,输入板编号范围从E00~E31。开关量输入输出板均为32位,输出板的地址编号为AXXA02~AXXA32,AXXE02~AXXE32,输入板地址编号为EXXA02~EXXA32,EXXE02~EXXE32。
西门子S5-135PLC系统开关量输入输出板最多配置也为32块,每块板32位,输入板地址编号为I0.0~I127.7,输出板地址编号为Q0.0~Q127.7。
2.2.3 块结构及信号变换
CP80每个程序块以BILD;NRX开头(X为程序块编号),无块结束标志,这些程序块在循环中执行,变换时采用程序块PBX替代,并加上块结束标志BE。
CP80调试用的一些信号,如F0、F1、EB、XM、BLI1~BLI5以及USF、ZM、ZB1、ZB2、NB、UKB、S、SV等,在S5-135U指令系统中采用标志位或程序替代,按要求编制其功能。
2.2.4 程序模块变换
AEGCP80有35个模块,30个扩展模块,每个模块通常由4个部分组成:名称,选通位,输入参数表和输出参数表,有些特殊模块只有名称,如结束模块(ENV),这些模块的各种组合形成CP80的程序。
CP80的一些简单功能模块,如“UND”与模块,“ODER”或模块,“XOR”异或模块,“SPG”、“SPH”、“FLE”、“FLA”、“FEA”、“VAN”、“VAB”等,S5?135U指令系统中可直接用相应的功能模块替代,直接在PB块中变换。
对于CP80的一些复杂功能模块,如“SFW”、“AEQ”、“BEW”、“LAB”等,S5-135U指令系统中无此功能可直接替代。为此采用功能块程序对其进行逻辑替代,这些由程序员开发的功能块程序,达到与CP80程序模块相同的功能。
2.2.5 特殊功能子程序编制及变换
AEGCP80有一些特殊功能子程序,是采用8088汇编语言编制而成的,如子程序模块调用程序UPA中,WA35用于PLC接通电源后对计数器插件板初始化,并选通2#计数器;WA41用于将1#脉冲切换到2#脉冲,即把当时计数器的内容存入DW21,而把DW22的内容送入计数器,并启动。上述这些子程序都是对CP80的高速计数器D12插件板编写的子程序,在S5-135U程序中编写功能块程序可达到其相同的功能。
2.2.6 中断服务程序组织
AEGCP80的中断服务程序结构为:在中断程序前由一条SPA(EFF1)有条件转移启始模块指令跳转到中断程序入口,在程序尾部有一条中断返回语句RET,中间是中断服务程序内容。
S5-135U带中断的输入板6ES5432?4UA12中32路输入都可进行脉冲上、下沿中断,应根据具体控制对象的要求,编制判断中断源的程序,然后由相应中断源调用相应的服务程序。以2#横剪为例,采用了2个中断源:(1)飞剪剪切中断E2E28,上升沿触发;(2)开卷机钢卷垂直对中中断E2E32,上升沿触发。在S5?135U程序中判断I11.5、I11.7输入信号,分别进行中断处理,同时还在程序中保证前者中断优先权高于后者。
2.2.7 OB组织块
S5-135U组织块是系统程序与用户程序之间的接口。组织块OB1到OB39是用户程序的一部分。OB块都是由系统程序调用的,作为对一定事件的响应。所有OB组织块程序由变换软件自动完成。
2.3 由S5-135U程序文本文件转换为可执行代码
此转换过程在编程器内STEP5操作系统下完成。在STEP5环境下,先输入待转换的文件名**a0.seq,再输入S5-135U的可执行代码文件?ST.S5D,按操作说明书的要求进行操作,就可一次性完成转换。
3 现场运行效果
本系统于1998年5月6日正式投入精整2#横剪使用。从现场生产情况来看,升级换型后的系统功能与原系统完全一致,系统运行可靠,操作简便;采用编程器查找,分析事故比原系统方便;流程图、梯形图、语句表等多种方式可选择,特别是符号表的建立,使新老系统输入、输出、中间标志符号完全对应,便于软件的阅读与故障的查找和分析。