文档地址:
S7-1200 和 S7-1500 的编程指南和编程风格指南
文档中有S和R区分,在此作如下翻译:
rule:规则
suggestion:建议
文档参照:
一、基本规则
1、Block/s without errors after compiling.Possible warnings are checked and evaluated.
翻译:编译后,确保块没有报错。警告也应该检查并确认。(规则)
辅助解读:废话。编译不通过怎么下载。
2、All required PLC data types exist in the project/library.
翻译:项目中或库中包含所有需要的数据类型 。(规则)
辅助解读:废话。需要的功能没有编什么程序。
二、一般说明:
2.1格和客户要求(这个翻译不是很准)
3、Rule violations are documented in the program code and were discussed.
翻译:违反规则应该在讨论后在程序中标记出来。(规则)
辅助解读:当公司标准与客户标准冲突时,需有相应的处理办法。
2.2 TIA Porta的设置:
4、The language is always consistent in PLC programming as well as in the HMI (English, German, ...).
翻译: PLC程序与HMI中所用的语言应该是始终一致的。(规则)
辅助解读:个人觉得,PLC内最好不要使用中文,但HMI面向中国人的还是使用中文吧。
5、The editing and reference language is set to English (United States).
翻译:编辑和参考语言设定为英语(美国)。(规则)
辅助解读:在中国使用汉语吧。
6、The user interface language used in the TIA Portal is English(United States).
翻译:TIA Portal用户界面语言使用英语(美国)。(建议)
辅助解读:同上
7、 Mnemonic (language setting for programming languages) mustbe set to “International”.
翻译:助记符(编程语言设定的语言)必须设置为“国际”。(规则)
辅助解读:默认就是。不设国际,设"德国"更不懂。
8、Tab characters are not permitted in the source text. Indentations must be realized with two space characters.
翻译:源文本中不允许使用制表符Tab。缩进必须使用两个空格符号。(规则)
辅助解读:真个没看懂。不过可在博图中找到设置。“选项”“设置”“常规”“脚本/文本编辑器”。我的V14 SP1默认设置。

2.3标识符/助记符
9、The identifiers are all composed in English language.
翻译:标识符全部使用英语。(规则)
辅助解读:之前在论坛中看到一个讨论编程中使用英文的帖子,个人觉得不错,找到了再贴上。
10、It is not permitted to use identifiers with the same name that only differ in upper and lower case.
翻译:不允许使用只有大小写区分但名称相同的标识符。(规则)
辅助解读:不点评。
11、Identifiers are defined in camelCasing notation.
翻译:标识符使用骆驼命名法。(规则)
辅助解读:PLC没有统一的命名法,但可以参考PC编程。主要的有三种;
骆驼命名法(camelCase):除第一个单词外,其他单词首字母大写,中间没有其他连接符或空格。西门子推荐全局变量(global tags)、块(FC、FB)形参(Input、Output、InOut、Static、Temp)、多重背景数据块(Multi-instance)和PLC数据类型(UDT)都使用这种命名方法。
帕斯卡命名法(PascalCase):与骆驼命名法的区别是第一个单词首字母也要大写。西门子推荐全局数据块(Global DB)、单个实例背景数据块(Single Instance DB)、程序块(OB、FB、FC)、变量表、监控表、Trace、组合测量、工艺对象等的命名均采用此命名方法。
还有其他命名法,如蛇命名法(snake_case),匈牙利命名法(Hungarian),就不再讨论了。另外,程序命名中用下划线“_”的比较多,西门子对下划线的建议用法仅限于常量,要求全部大写,单词间使用x下划线连接(见第43条)。
资料: Programming Guideline for S7-1200/S7-1500
12、Identifiers have a maximal length of 24 characters.
翻译:标识符最大长度不要超过24个字节(建议)。
辅助解读:无
13、special characters or blanks are not used.
翻译;不要使用特殊标识符和/或空格。(规则)
辅助解读:特殊标识符不容易使用到,但空格要注意。
14、only meaningful identifiers are used.
翻译:使用有实际意义的标识符。(规则)
辅助解读:引用主题帖【探讨】PLC编码规范, 持续更新的一句话:程序中注释,过去一直认为越详细越好,不过世道变了,现在推荐代码自我注释,也就是说,清晰的代码不要注释也很容易理解,而凌乱的代码即使有注释也不大理解。注释不要去解释某条语句或指令,要写出代码的意图。
15、 the uniform abbreviations are used correctly.
翻译:正确使用缩写。(建议)
辅助解读:正确使用缩写。
16、only one abbreviation per identifier is used.
翻译:要求每个标识符只有一个缩写。(建议)
辅助解读: 有没有哪位大侠整理过一些标识符,共享一下。 看西门子库程序,电机(Motor)简称Mtr,阀(Valve)简称Vlv,但没详细的表格。
三、PLC程序
3.1 程序块和外部源文件
(英语原文是Program blocks and sources,个人猜测这个sources是外部源文件。)
17、Only short, functional names are used for blocks.
翻译:使用简短有实际意义的名字为块命名。(建议)
辅助解读:同14.
18、All identifiers of blocks start with a capital letter.
翻译:所有块的标识符第一个字母大写。(规则)
辅助解读:使用PascalCase命名法,参照11点评。
19、Instances have the prefix “inst” / “Inst”。
翻译:背景数据块加前缀“inst ”或“Inst”,多重背景数据块使用“inst”(骆驼命名法,参照第11点评),单个实例背景数据块使用“Inst”(帕斯卡命名法)(规则)
辅助解读:FB块和FC块使用时,其形式参数命名方式不同。其中Input、Output和InOut不推荐使用前缀,静态变量(Static)使用前缀“stat”,临时变量(Temp)使用前缀temp。这样方便用户区分不同的数据类型,增强程序需可读性。
20.Auto numbering is activated in all blocks.
翻译;所有的块都使用自动编号。(规则)
辅助解读:使用自动编号可避免块重复。

21、The line length in the program editor is max. 80 characters long.
翻译:程序编辑器行长度最大不超过80个字符。(建议)
辅助解读:看资料说为了可读性。
22、No sources (SCL, STL) are used.
翻译:不使用外部源文件。(规则)
辅助解读:还是搞不懂这个源是什么。资料说,为了使用博图完整功能,保证编译,不要使用外部编辑或后来导入的源程序。这个源是刚刚我猜测的那个外部源文件吗?

23. SCL is preferably used as programming language.
翻译:SCL是比较好的编程语言。(建议)
辅助解读:
24. If possible, multi-instances are a