[西门子]s7-1200-1500-的编程风格指南
目录
1 导言 …………………………………………………………………………………………………. 6
1.1 目标 ………………………………………………………………………………………………………………………………………….. 6
1.2 统一规则的优点 ……………………………………………………………………………………………………………………… 7
1.3 适用性 ………………………………………………………………………………………………………………………………………. 7
1.4 范围 ………………………………………………………………………………………………………………………………………….. 7
1.5 违规及其他规则 ……………………………………………………………………………………………………………………… 7
2 定义 …………………………………………………………………………………………………. 8
2.1 规则/建议 ………………………………………………………………………………………………………………………………… 8
2.2 枚举规则 ………………………………………………………………………………………………………………………………….. 8
2.3 性能 ………………………………………………………………………………………………………………………………………….. 8
2.4 标识符/命名 …………………………………………………………………………………………………………………………….. 9
2.5 缩略语 ………………………………………………………………………………………………………………………………………. 9
2.6 与变量和参数一起使用的术语 ……………………………………………………………………………………………10
3 TIA博途中的设置 …………………………………………………………………………….. 12
ES001规则:用户界面语言“English”………………………………………………………………………………….12
ES002规则:助记符“International” ……………………………………………………………………………………12
ES003建议:编辑器中的非比例字体 ………………………………………………………………………………..12
ES004规则:带有两个空格的智能缩进 ……………………………………………………………………………13
ES005规则:操作数的符号表示 ………………………………………………………………………………………..13
ES006规则:符合IEC的编程 ……………………………………………………………………………………………..14
ES007规则:通过HMI/OPC UA/Web API显式数据访问 ………………………………………………14
ES008规则:启用自动值计算(ENO) ………………………………………………………………………………….14
ES009规则:自动计算数组边界 ………………………………………………………………………………………..14
4 全球化 ………………………………………………………………………………………….. 15
GL001规则:使用一致的语言 ……………………………………………………………………………………………15
GL002规则:设置编辑参考语言为“English(US)” ……………………………………………………….15
GL003规则:提供所有项目语言的文本 ……………………………………………………………………………16
5 命名和格式 ……………………………………………………………………………………… 17
NF001规则:唯一且一致的英文标识符 ……………………………………………………………………………17
NF002规则:使用有意义的注释和属性 ……………………………………………………………………………18
NF003规则:记录开发人员信息 ……………………………………………………………………………………….19
NF004规则:遵守库的前缀和结构 ……………………………………………………………………………………20
NF005规则:使用帕斯卡(PascalCasing)命名法 …………………………………………………………21
NF006规则:对代码元素使用驼峰命名规则camelCasing ……………………………………………22
NF007规则:使用前缀 ………………………………………………………………………………………………………..23
NF008规则:用大写字母表示常量标识符 ……………………………………………………………………….24
NF009规则:限制标识符的字符集 ……………………………………………………………………………………25
NF010建议:限制标识符的长度 ……………………………………………………………………………………….25
NF011建议:每个标识符仅使用一个缩写 ……………………………………………………………………….25
NF012规则:以对应的格式初始化变量 ……………………………………………………………………………26
NF013建议:隐藏可选形参 ………………………………………………………………………………………………..26
NF014规则:有意义地格式化SCL代码 …………………………………………………………………………..27
6 可重用性…………………………………………………………………………………………. 30
RU001规则:提供可以仿真的块 ……………………………………………………………………………………….30
SIMATIC S7-1200/S7-1500编程风格指南
条目ID: 109478084,v2.0,05/2020 4
RU002规则:完全使用库进行版本控制 …………………………………………………………………………..30
RU003规则:在已发布的项目中只保留已发布的类型 …………………………………………………..31
RU004规则:只使用局部变量 ……………………………………………………………………………………………32
RU005规则:使用本地符号常量 ……………………………………………………………………………………….32
RU006规则:程序完全符号化 ……………………………………………………………………………………………33
RU007建议:独立于硬件编程 ……………………………………………………………………………………………34
RU008建议:使用模板 ………………………………………………………………………………………………………..34
7 引用对象(分配) ……………………………………………………………………………. 35
AL001规则:使用多重实例而不是单个实例 ……………………………………………………………………35
AL002建议:定义从0到常数值的数组边界 ……………………………………………………………………35
AL003建议:将数组参数声明为数组[*] ……………………………………………………………………………35
AL004建议:指定所需的字符串长度 ………………………………………………………………………………..36
8 安全 ……………………………………………………………………………………………….. 37
SE001规则:验证实际值 …………………………………………………………………………………………………….37
SE002规则:初始化临时变量 …………………………………………………………………………………………….37
SE003规则:处理ENO ………………………………………………………………………………………………………..37
SE004规则:有选择地激活HMI/OPC UA/Web API数据访问 ……………………………………..37
SE005规则:评估错误代码 …………………………………………………………………………………………………38
SE006规则:用评估逻辑写错误OB ………………………………………………………………………………….38
9 设计指南/体系架构 …………………………………………………………………………… 39
DA001规则:对项目/库进行结构化和分组 ……………………………………………………………………..39
DA002建议:使用适当的编程语言 …………………………………………………………………………………..39
DA003规则:设置/评估块属性 ………………………………………………………………………………………….40
DA004规则:使用PLC数据类型 ………………………………………………………………………………………41
DA005规则:只通过形参交换数据 …………………………………………………………………………………..42
DA006规则:仅从块内访问静态变量 ……………………………………………………………………………….42
DA007建议:形参组 ……………………………………………………………………………………………………………42
DA008规则:输出参数只写一次 ……………………………………………………………………………………….42
DA009规则:仅保留使用过的代码 …………………………………………………………………………………..43
DA010规则:根据PLCopen开发异步块 …………………………………………………………………………43
DA011规则:带“enable”的连续异步执行…………………………………………………………………………43
DA012规则:带“execute”的单次异步执行 ……………………………………………………………………….46
DA013规则:通过“status”/“error”返回状态/错误 ……………………………………………………………49
DA014规则:“status” 使用标准化的取值范围 …………………………………………………………………49
DA015建议:传递下层信息 ……………………………………………………………………………………………….50
DA016建议:用CASE指令代替ELSIF分支 …………………………………………………………………….51
DA017规则:在CASE指令中创建ELSE分支 ………………………………………………………………….51
DA018建议:避免跳转和标签 ……………………………………………………………………………………………51
10 性能 ……………………………………………………………………………………………….. 52
PE001建议:禁用“创建扩展状态信息” ……………………………………………………………………………..52
PE002建议:避免“在IDB中设置” ……………………………………………………………………………………..52
PE003建议:使用引用传递结构化参数 ……………………………………………………………………………52
PE004建议:避免Variant形参 ………………………………………………………………………………………….53
PE005建议:避免形参 “mode” …………………………………………………………………………………………..53
PE006建议:首选临时变量 ………………………………………………………………………………………………..53
PE007建议:将重要的测试变量声明为静态 ……………………………………………………………………53
PE008建议:将控制/索引变量声明为“DInt” …………………………………………………………………….54
PE009建议:避免多个相同的索引访问 ……………………………………………………………………………54
PE010建议:使用片段访问代替掩码 ………………………………………………………………………………..54
PE011建议:简化IF/ELSE指令 ………………………………………………………………………………………….55
SIMATIC S7-1200/S7-1500编程风格指南
条目ID: 109478084,v2.0,05/2020 5
请登录后查看评论内容