我是老董,专注于电气自动化项目经验分享!
我们要干嘛?
在过程控制中,我们经常需要测试某一个工艺单元的控制逻辑,但是编程阶段由于没有可用设备,只能手动增加大量测试点,需要占用大量的思维空间,考虑每一个点会发生的变化。从而无法将精力聚焦于工艺和逻辑控制功能的实现,所以我们需要建立面向对象的编程方式,并在控制对象模型中增加测试功能,既能保证正常的功能又预留相应的测试接口;
同时我们要保证我们的测试功能不可以给工作量带来额外的开销。
今天我们使用施耐德Unity来构建一个带测试功能的电机块和仪表块!
过程控制程序设计首先应面向对象
过程控制中存在大量重复设备,比如从小处讲如:水泵、搅拌器、皮带机、减速机其实都有着大量的共性;都有自动、运行、故障等反馈信号,都有启动点。都存在手动启动和自动启动的情况,部分使用变频器控制,部分使用直接启动。利用这些共性,这种设备我们就可以形成一个控制模型!
这种思维方式,可以避免大量重复劳动,不需要过多的复制修改代码,其次使程序结构变的简洁明了,将思维聚焦到工艺的实现和复杂功能的构建。
如果有两套相同的工艺体也可以提炼出相应的控制块,以便简化你的程序,控制块内使用多种编程方式、结构化文本、梯形图、功能块图。。。
1、带测试点的电机控制块
首先来考虑,一个电机我们需要多少个外部接口,我们假定我们是需要在人机界面上监视控制此电机。那么必备的接口(实际使用可能需要增加更多接口):
该功能块可实现实际和测试内部完全分离,测试时作为电机不将结果输出至外部接口,同时将操作反馈至真实反馈接口,可以用于大型项目控制模拟。
外部反馈DI接点:远程、运行、故障
外部控制DO接点:启动
外部反馈AI接点:反馈频率
外部控制AO接点:控制频率
人机界面显示接口:远程、运行、故障(不可以直接引用外部变量,避免更改外部点位时需要同时修改人机界面组态、程序)启动超时报警、当前频率、累计运行时间、本次运行时间
人机界面操作接口:手/自动、手动启动、手动停止、设置频率、复位报警、复位时间
2、一个仪表功能块
本仪表功能块可以实现将模拟量输入线性转换为实际当前仪表值,并有高限报警、低限报警功能。同时有测试接口可手动/自动,手动时直接输入测试值,自动时根据输入值自动线性变换为输出值。用于大型项目测试。
我是老董,关注我学习更多电气自动化知识
閱讀更多 老董聊電氣自動化 的文章