如果基于TIA实例开发要用于工程项目,那么购买正版软件是必不可少的,HMI根据上传的变量数Power Tags收费,如左图所示将电机的状态、操作等布尔标志打包到字或双字将是很有必要的,不但节省了Power Tags也减小了HMI与PLC之间的通讯负荷。
l 面向电机对象创建实例提高效率
实例引导着工程师逐步完成结构化编程,将工厂控制系统拆分为控制单元,再拆分后就是电机、阀门、模拟量监视、PID等控制对象,工程师根据控制单元创建FC并在其中调用电机、阀门、PID等FB实例组合,编写一些外围的逻辑完成控制任务,最后由组织块OB调用控制单元FC就组成了整个控制系统程序。
变量名(标识符)在新工程师的项目里经常可以看到中文、拼音、无意义的“A1”、“B2”这样的变量,上传到WinCC的变量也可能是I、Q、M、DB区地址,这些都是新手常见的错误,而实例AS block采用FB编程,所有上传的变量都是背景数据块,变量无需再次命名。实例的变量命名满足IEC-61131-3标准的情况下,并借鉴IT的一些命名规则,直接省去了创建变量名的工作,因此杜绝了新工程师犯这些常见的错误方法。
不局限于PLC编程,实例开发还包括icon和faceplate,在实例的faceplate中以下功能常常需要编写C脚本或者手动组态,而这些对于一个年轻工程师来说工作过于复杂:
- 每个操作按钮分配了控制权限,权限来自面板使用者权限等级的定义如:工程师,维护,操作员, 生产组长,同时还结合块内部算法,如:就地模式时,面板不允许启停电机,防止误操作。
- 按钮和参数修改等操作还会生成可查询的操作记录,为还原事故过程提供依据。
- 通用的报警消息的归档与显示:电机保护、运行错误、反馈错误、外部错误、运行时联锁、外部消息1/2。
- 多语言切换。 (默认提供中英)
- 使用结构变量,每个实例电机只需要在icon上连接2个变量即可完成所有的监视和控制的变量连接。Faceplate通过icon获取变量前缀,调用结构变量,faceplate无需连接手动输入任何变量。
学习成本
l 编程语言的选择
市面存在可以商品化的实例开发基本选用的开发语言是STL和SCL,而近些年基于SCL的开发更是大热,西门子PCS7 APL高级过程控制库,BST实例,IL工业库开发语言都选择了SCL。 STL运行是最接近机器语言的,但可读性却是最差,SCL精于算法,却不适合布尔逻辑控制。电机实例的AS Block基本属于布尔逻辑控制,用LAD控制更直观。以一段PCS7 APL源代码为例,其嵌套关系很难一眼就看出:
xBumplessAllowed :=
(
(
(NOT OpenAut.Value AND xFeatSwitchMode)
AND
(NOT (Ctrl.Value XOR SafePos))
)
OR
(
xFeatSwitchMode AND OpenAut.Value AND (Ctrl.Value XOR SafePos)
)
)
OR
(
NOT xFeatSwitchMode
AND
( NOT (Ctrl.Value XOR SafePos) = CloseAut.Value )
AND
( (Ctrl.Value XOR SafePos) = OpenAut.Value )
)
OR
( NOT xFeatSwitchMode AND NOT CloseAut.Value AND NOT OpenAut.Value )
OR
( NOT xFeatSwitchMode AND CloseAut.Value AND OpenAut.Value )
;
l 使用实例执行项目
以新手编写一个项目程序为例,300点的项目可能需要研究二个月时间,用实例库包含第一次使用熟悉实例再加上编程可能也是二个月,项目最后都完成了,但是项目的工程质量却不是一个等级。实例前期开发充分考虑了程序的结构、优化和美观以及用户要求( 操作记录,双语切换,变量与消息归档等 )。当使用者第2次再使用实例做工程时的效率就会得到飞升。