一. 项目简介
1. 上海方电科技发展有限公司是一家由继续设计,计算机软硬件及自动化专业等高级技术人员组成的科技公司,主要从事帘帆布浸胶机设备及涂层设备的设计、开发和制造。该项目于2006初确定,3月开始实施,5月完成交付使用。
2. 用户单位:河南尉氏久龙橡塑集团有限公司,地处河南开封尉氏县,年产三角带以生产各种规格三角带为主。现有平版硫化机72台,硫化罐50台。久龙橡塑集团年生产三角带达7000万A米,处于行业领先地位。橡胶三角带的质量与硫化时间有关,硫化时间不能少,也不能太长。为保证质量,采用了 硫化计算机监控系统。
3. 三角带的规格繁多,小型的,采用模具固定,在硫化罐中加压、加热并保持一定硫化时间一次完成。对大型三角带,由于尺寸大,模具费用高,一般采用平版硫化机分段硫化。同时对6-8根三角带进行硫化,一段硫化完成后,转动三角带到下一段。反复5-10次才能对整根三角带都硫化一遍。为了更好的达到质量要求,工艺要求进行2遍硫化,分别为一次硫化和二次硫化。两次硫化时间各不相同。监控系统要求能对所有的硫化机和硫化罐的硫化时间进行设定,同时能实时观察实时硫化时间。硫化到时发出提示信号。对硫化时间不到或超过一定时间的设备,有报警输出。保存每次硫化的设定值和实际时间值,便于进行质量跟踪。
4. 系统配置:
DELL商用机一台,配CP5611卡
操作系统:WinXP Professional SP2
S7-224 2台,另配多个数字扩张模块
软件:WinCC V6.0 SP1中文版、S7-200 PC Access SP2。WinCC通过OPC方式,对S7-224进行读写,所有的控制由224完成。
5. 现场设备照片
二. 控制系统构成
1. 硫化机车间共有72台硫化机,每台硫化机有压力信号和2次硫化选择信号两点输入,一点到时提示输出。配1台S7-224+DI/DO模块,由于输入点太多,采用动态扫描输入。硫化灌车间共有50台硫化灌,每台硫化罐有一点压力信号输入,一点到时提示输出。配1台S7-224+DI/DO模块。通讯口地址分别设定为3、4,波特率:187.5K。
上位机位于车间办公室,PLC分别安装于两个车间,采用总线连接器和总线电缆与S7-224程控器相连,CP5611配置为MPI通讯,波特率:187.5K。电缆总长约200米。
2. 系统的硬件配置图,网络结构图,应用中的监视画面。
硫化机硫化时间设定画面:
硫化机实时数据显示:
硫化罐实时数据显示:
故障记录:
硫化机历史记录:
3. 该项目初始时是用户要求采用三菱FX2n程控器,经做方案时发现由于该型号程控器可扩展点少,须选用4台程控器。在编程方面,无法采用子程序,只能对每台设备单独编程。对比下来其编程工作量大,成本高。同时效果不理想。通过与用户多次沟通采用了现在的配置,用户感到使用方便,效果明显。
三. 控制系统完成的功能
1. 对硫化机来说由于机台数量多,笔者应用西门子程控器编程所特有的库程序,将8台设备为一组,先编制库程序。为简化编程,在库程序中要求输入编号,V区中为每个硫化机子程序保留30个字节暂存区,为每个硫化罐子程序保留20个字节暂存区,用于保存8台机组的运行状态、硫化计时、硫化时间到达输出提示、硫化时间出错输出报警及及硫化过程结束输出归档信号等。72台硫化机共调用9次,编号为0-8。52台硫化罐调用7次,编号0-6。
硫化机子程序输入输出要求:
输入:
编号 双字,根据编号分配缓存区地址
压力信号 字,输入压力和二次硫化信号,8台硫化机共16位。
运行状态 双字,采用间接寻址,用&vbxxxx格式输入,硫化机实际运行状态,将当前输入状态保存,用于判断边缘。
时间设定 双字,采用间接寻址,用&vbxxxx格式输入,一二次硫化设定时间(字)
实际时间 双字,采用间接寻址,用&vbxxxx格式输入,一二次硫化实际时间(字)
硫化次数 双字,采用间接寻址,用&vbxxxx格式输入,一二次硫化次数(字节)
输出:
报警输出 字,每台硫化机2个位,分别代表一二次硫化时间故障
次数报警 字节,两次硫化次数不等时报警
完成输出 字节,硫化到时输出提示信号
一次脉冲 字,一次硫化卸压时输出5秒脉冲,用于归档
二次脉冲 字,二次硫化卸压时输出5秒脉冲,用于归档
次数脉冲 字节,当二次硫化信号消失时为二次硫化结束,输出3秒脉冲,用于归档
2. 由于采用了库程序,S7-224的编程比较简单。需要注意的是符号定义,对符号采用连续成块的定义。这样既便于了PC Access的变量读取,也方便WinCC的变量的添加和使用。
3. 库程序的编制难点在于对8台机组进行计时。信号输入,每台硫化机有2点输入(压力、二次硫化选择)共16位一个字,时间设定采用间接寻址方法输入地址,实际硫化时间也是采用间接寻址方法,输出端不能输入地址信号,是通过输入端送入。对每台设备的硫化时间的计时,由于库程序无法使用计时器,笔者采用字加1的办法实现计时,只要保证子程序每秒运行一次,则该数字就是实际时间,时间单位为秒。
硫化机库库程序简介:
程序运行,需要30个字节内存保存运行时的数据,实时时间计时保存,每台一个字,共16个字节。输出报警状态暂存2个字节,当前运行状态保存,每台2位,共16位2个字节。硫化次数保存,每台一个字节,共8个字节。2次硫化次数不一致时的次数报警暂存1个字节。共29个字节,保留1个字节。其存储器起始地址,由库程序调用时定义。
以1#-8#硫化机为例,计时处理,IW0是输入信号,VW2000是1#一次硫化设定时间,VW2002是1#二次硫化时间设定。VW2400是1#一次实际硫化时间,VW2402是1#二次实际时间。采用&vb2000和&vb2400输入库程序。在每次运行,先将压力信号移到LW29临时寄存器,L29.0是1#机压力信号,L29.1是1#机的二次硫化信号。只要有压力信号就对计时保存字加1,并根据L29.1状态分别将当前时间送到实际时间地址中(间接寻址输入程序)。当实际时间到达设定时间时,对提示位置1,一旦压力信号为0时,提示位复位,同时根据状态暂存位状态判断是否首次为0,是首次为0,运行比较程序段,比较时间值,小于设定值或大于一定值输出报警位,同时硫化次数加1。每循环一次,LW29右移2位,实际时间地址的间接寻址数加4。循环8次,可以对8台硫化机处理完。
由于库程序中要处理多种位信号和数字,在循环处理时,必需做到一一对应,程序结束时,将当前运行状态信号、时间报警状态,次数报警状态及归档脉冲信号保留至暂存内存相应地址中。在编制时,多次对试验后的结果进行调整,造成内容繁杂,有些内容可以简化,但是在程序中,用了大量的临时地址,一旦改动输入输出的数量和数据格式,会造成L地址的变动。鉴于现程序在实际应用中工作正常,为避免产生差错,也就保留一下多余程序段。具体参见附件程序。
四. 项目运行
系统于2006年5月投入工作,运行情况良好,用户感到使用方便。集中监控系统使得车间工艺员更便于管理,只需要在车间办公室就可对所有设备进行时间设定和监视。均比以前有了很大的提高。更直观,更可靠。保证了三角带的硫化时间,稳定产品质量。同时,通过历史数据的分析,可以优化品种的搭配,直接提高了产量,增加效益。
五. 应用体会
1. 对库程序的编制有了更深刻的了解,在编制8台硫化机的库程序时,先对一台进行编程,然后再循环运行。为了保证能一一对应,先将信号输入字,暂存临时地址,每次均以L0.0和L0.1作为当前信号输入处理,并在每次循环时右移2位。循环结束后并将其保存在缓存区中,以便下次调用时作比较用。
2. 计时处理:库程序不能采用定时器,就采用字加一来计时。定义库程序每秒运行一次,则字中的数字就是时间,单位是秒。为了对应,硫化时间的设定也是以秒为单位。通过字比较,可以判断硫化到时或出错。笔者采用定时中断,100mS中断一次,1秒为一个周期。子程序分时运行,保证每100mS只运行一个编号子程序,所有子程序每秒运行一次。在实际使用中,其时间误差为1秒。
3. 库程序中需判断信号输入的首次和结束,库程序无法采用边沿指令,笔者采用信号输入位与暂存信号位比较来确定。当信号输入位是1,暂存信号位是0,此时就是首次信号输入,运行首次程序段,并对暂存位置位。当信号输入位是0,暂存信号位是1,此时就是信号输入结束,运行结束程序段,并对暂存位复位。
4. 项目的硫化时间数据保存要求,对过程时间记录毫无意义,只需要每次硫化结束时保存结果数据。WinCC的故障记录和数据归档,采用触发归档,由程序给出一个脉冲信号进行触发。这样数据量少,查找方便。
5. PC Access作为S7-200程控器的OPC服务器,对与200通讯有一个缺点。开始做试验时,用一台S7-200只进行数据移动运行,PC Access组态对PLC读写,在WinCC上观察从数据写入到数据读出,其响应速度很快。后将两台PLC的变量全部配置好,在公司进行模拟运行,发现运行速度很慢,数据输入到显示要等上近20秒!反复检查硬件和软件都没有问题,当时几乎想放弃使用PC Access改用别的OPC。直到后来订货的2台PLC到齐后,全部连上再次试其通讯速度又很快。分析后发现是通讯等待响应问题。原来在以前试验时,只接了一台PLC,PC Access在通讯时,对不存在的PLC通讯会反复进行,大量的时间浪费在这上面!建议PC Access应能设定通讯重试间隔时间,并对每次通讯重发次数进行限制。这样会给现场调试使用带来方便。
六. 结束语
首次使用WinCC配PC Access,深感其使用方便,尤其是变量的导入,几乎不需花费时间,几分钟就全部完成。为底端PLC也能用上高端的组态软件提供了良好的应用条件,便于开发出更多的产品。