西门子发布《TIA程序设计规范指南》

工控安全 3年前 (2021) admin
1,064 0 0

目标

《TIA程序设计规范指南》中描述的规则和建议可以帮助您创建一个统一的、可维护和可重用的程序代码。特别在多个开发人员共同开发的情况下, 建议规定项目范围内的术语以及统一的编程风格。通过这种方式,您可以在项目早期阶段检测并避免错误。

出于可维护性和可读性的考虑,程序需要遵循一定的格式,更重要的是定义规则, 这些规则可为开发人员带来如下益处:

• 避免编译器无法识别的错误,例如错别字等不经意的错误 目标:编译器应识别尽可能多的错误

• 支持开发人员诊断编程错误,例如临时变量的重复使用超过一个周期 目标:尽早指出标识的问题

• 应用程序和库的标准化目的:使培训变得容易,增加程序代码的可重用性

• 易于维护和简化下一步开发目标:因为程序的更改可能是由不同的程序员在执行,所以要求在程序代码单 个模块中所做的更改,应该对整个程序产生最小的影响

统一规则的优点

• 风格统一一致
• 易于阅读和理解
• 易于维护,可重用性强
• 简单快速的错误识别和纠正 • 多个程序员的高效协作

适用性

本文件适用于 TIA 博途中的项目和库,这些项目和库是使用符合 IEC 61131-3 的编 程语言编写的(DIN EN 61131-3),它们是结构化文本(SCL/ST),梯形图 (LAD/KOP)和函数块图(FBD/FUP)。本文件还适用于软件单元,文件夹,组,组织块(OB),函数(FC),函数块(FB),工 艺对象(TO),数据块(DB),PLC 数据类型(UDT),变量,常量,PLC 消息文本列 表,监视表,强制表以及外部源。

范围

此文档不包含以下内容的描述:

  • 使用TIA博途的STEP 7编程

  • SIMATIC 控制器的调试 在以上内容有足够的知识和经验,是正确理解和使用既定规则及建议的先决条件。本文档仅作为参考,并不取代软件开发领域的相关知识。

西门子发布《TIA程序设计规范指南》

目录:

TIA 博途中的设置

ES001 规则:用户界面语言“English”

ES002 规则:助记符“International”

ES003 建议:编辑器中的非比例字体

ES004 规则:带有两个空格的智能缩进

ES005 规则:操作数的符号表示

ES006 规则:符合 IEC 的编程

ES007 规则:通过 HMI/OPC UA/Web API 显式数据访问

ES008 规则:启用自动值计算(ENO)

ES009 规则:自动计算数组边界

![https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2021/11/2-1635812817.png]

全球化

GL001 规则:使用一致的语言

GL002 规则:设置编辑参考语言为“English(US)”

GL003 规则:提供所有项目语言的文本
西门子发布《TIA程序设计规范指南》

命名和格式

NF001 规则:唯一且一致的英文标识符

NF002 规则:使用有意义的注释和属性

NF003 规则:记录开发人员信息

NF004 规则:遵守库的前缀和结构

NF005 规则:使用帕斯卡(PascalCasing)命名法

NF006 规则:对代码元素使用驼峰命名规则

NF007 规则:使用前缀

NF008 规则:用大写字母表示常量标识符

NF009 规则:限制标识符的字符集

NF010 建议:限制标识符的长度

NF011 建议:每个标识符仅使用一个缩写

NF012 规则:以对应的格式初始化变量

NF013 建议:隐藏可选形参

NF014 规则:有意义地格式化 SCL 代码
西门子发布《TIA程序设计规范指南》

可重用性

RU001 规则:提供可以仿真的

RU002 规则:完全使用库进行版本控制

RU003 规则:在已发布的项目中只保留已发布的类型

RU004 规则:只使用局部变量

RU005 规则:使用本地符号常量

RU006 规则:程序完全符号化

RU007 建议:独立于硬件编程

RU008 建议:使用模板
西门子发布《TIA程序设计规范指南》

引用对象(分配)

AL001 规则:使用多重实例而不是单个实例

AL002 建议:定义从 0 到常数值的数组边界

AL003 建议:将数组参数声明为数组[*]

AL004 建议:指定所需的字符串长度
西门子发布《TIA程序设计规范指南》

安全

SE001 规则:验证实际值

SE002 规则:初始化临时变量

SE003 规则:处理 ENO

SE004 规则:有选择地激活 HMI/OPC UA/Web API 数据访问

SE005 规则:评估错误代码

SE006 规则:用评估逻辑写错误 OB
西门子发布《TIA程序设计规范指南》

设计指南/体系架构

DA001 规则:对项目/库进行结构化和分组

DA002 建议:使用适当的编程语言

DA003 规则:设置/评估块属性

DA004 规则:使用 PLC 数据类型

DA005 规则:只通过形参交换数据

DA006 规则:仅从块内访问静态变量

DA007 建议:形参组

DA008 规则:输出参数只写一次

DA009 规则:仅保留使用过的代码

DA010 规则:根据 PLCopen 开发异步块

DA011 规则:带“enable”的连续异步执行

DA012 规则:带“execute”的单次异步执行

DA013 规则:通过“status”/“error”返回状态/错误

DA014 规则:“status” 使用标准化的取值范围

DA015 建议:传递下层信息

DA016 建议:用 CASE 指令代替 ELSIF 分支

DA017 规则:在 CASE 指令中创建 ELSE 分支

DA018 建议:避免跳转和标签
西门子发布《TIA程序设计规范指南》

性能

PE001 建议:禁用“创建扩展状态信息”

PE002 建议:避免“在 IDB 中设置”

PE003 建议:使用引用传递结构化参数

PE004 建议:避免 Variant 形参

PE005 建议:避免形参 “mode”

PE006 建议:首选临时变量

PE007 建议:将重要的测试变量声明为静态

PE008 建议:将控制/索引变量声明为“DInt”

PE009 建议:避免多个相同的索引访问

PE010 建议:使用片段访问代替掩码

PE011 建议:简化 IF/ELSE 指令

PE012 建议:根据预期对 IF/ELSIF 分支进行排序

PE013 建议:避免内存密集型指令

PE014 建议:避免运行时密集指令

PE015 建议:SCL/LAD/FBD 用于运行时间敏感的应用

PE016 建议:检查最小循环时间的设置
西门子发布《TIA程序设计规范指南》

文档下载链接:https://pan.baidu.com/s/17HHiNuF60qiGUu6AknwHIA

提取码: 加入剑指工控微信技术群,从管理员获取。

原文始发于微信公众号(剑指工控):西门子发布《TIA程序设计规范指南》

版权声明:admin 发表于 2021年11月1日 下午10:00。
转载请注明:西门子发布《TIA程序设计规范指南》 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...