命名规约
1. 项目/控制器命名
XXX项目文件和xxx控制器名称应代表控制器的主要控制功能,并应由站点名称、正在控制的系统名称和系统中的控制器插槽号组成。 在创建原始XXX项目时设置xxx控制器的名称。 当执行文件保存时,在编程软件中输入项目名称。 控制器的名称可以修改。 所选择的命名允许轻松识别项目文件,因为站点名称和系统名称包含在其中。 包含处理器插槽号,以允许在同一机架中有多个处理器出现时的潜在情况。
语法:
AAAAAAAA_Bbbbbbbbbb_cc
地点:
AAAAAAAA: 站点名称 (如, LTC)
Bbbbbbbbbb: 系统 (如, Aeration)
cc: 处理器所在机架中插槽号 (如, 02)
注意:名称必须以@字符开始,以满足IEC61131标准。
示例:
LTC_Aeration_02正在plc的槽2的处理器中运行,控制孤树溪设施的曝气池。 Chaparral_Booster_00正在plc的槽0的处理器中运行,控制在查帕拉尔(地名)的升压站。
2. 标签命名
标签名称的一般规则
· 只能使用字母字符(A-Z或a-z)、数字字符(0-9)和下划线_。
· 所有名称必须以字母字符或下划线开头。
· 任何名称都不能包含超过40个字符。
· 不能使用连续或尾随下划线字符_。(例如“AA__bb_”AA后面连续两个“_",b后面带着一个尾巴"_")
· 名字区分大小写。
· 标签将遵循文件ISA5.1-1984中描述的ISA标准的超集。根标签将使用标准的ISA名称。 例如,根标签LIT301指定液位变送器。 在ISA文档中可以找到用于构造标签名称的前缀和修饰符的索引。
· 一个三个字母的位置代码,后面跟着一个可选的PLC号,如果一个站点上有多个PLCs,它将在标签名称的前缀上表示标签的位置。 这将确保站点唯一的标签确实是整个系统唯一的。 位置代码清单应明确提供。
例如:
DEN_LIT301将是前面提到的位于丹麦井场的液位变送器。
LTC3_AIT211将是一个模拟信号变送器,来自一个分析器,位于孤树溪设施,连接到PLC3。
3. 标签属性
每个“标签”实际上将是一组值。 模拟输入标签通常由以下内容组成:
· 原始输入值
· 缩放过程值
· 报警限制
· 报警信号
· 缩放因子
由于所有这些值都与单个“标签”相关联,因此属性将使名称唯一。 该属性要么是结构的成员元素(见下面的UDTs),该属性名称由被“.”分隔的标签名称而被注意到,如:LTC3_AIT211.HiSetpt。 如果属性不是用户定义类型(UDT)的一部分,则将用下划线(“_”)分隔,如:LTC3_AIT211_PV。
4. I/O标签信号别名
当I/O模块被添加到项目的I/O配置中时,表示这些模块的通用标签将自动在控制器标签数据库中创建。 这些自动标签标识点的I/O架、插槽、通道和数据类型。 作为标签数据库环境的好处,还可以创建带有描述性过程函数名称的标签并将其链接到通用模块标签,从而作为别名,并使逻辑文档更容易理解。 然而,如果必须修改模块布局,则链接到模块的标签别名将被破坏,因为模块有其插槽号属性被修改。 然后,这将需要链接到重新定位模块的点的每个别名,以便手动重新建立其别名链接。 为了防止这种情况,应该创建一个中间标签别名,并将其链接到与模块关联的整个输入字或输出字,而不仅仅是单个位或点。 然后,逻辑的单个别名标签可以链接到表示整个模块的字。 因此,任何未来的I/O配置更改只需要重新分类单个标签,而不是许多标签。
将使用I/O信号标签别名来描述模块或I/O函数,并链接到基本标签。它们应由站点名称和标签名称组成。如果需要一个后缀来使标签唯一,就像UDT使用ISA标签名称时一样,应该使用后缀“IO”。
语法:
AAAAAAAA_Bbbbbbbbbb_IO
地点:
AAAAAAAA: = Site name (如, LTC)
Bbbbbbbbbbb: = ISA 标签名 (如, AIT201)
IO = “IO”, 如果有必要,使标签唯一。
示例:
LTC_YC201是来自在孤树溪设施的曝气池上,编号为1的排放阀的报警输入。
5. 用户自定义标签(UDT)
用户定义标签(UDT)是自定义数据结构的模板,可以与任何数据类型(如整数或浮点数)以相同的方式在整个程序中使用。 UDT被定义为其他数据类型的集合,它们要么是基本的,例如整数,要么是复杂的,例如另一个UDT。
UDT允许创建标签变量的自定义分组,这些标签变量可以在整个项目中重用。 这些组大大组织了相关的标签和它们一起使用的代码。 何时创建和使用UDT的基本前提是“可重复性”。 如果一段逻辑被重复使用,并且可以被看作是一个通用的起点,那么UDT可以大大有利于标准化逻辑的努力。 所有附加指令(AOI)都有一个相关的UDT。
一个如何使用UDT的例子是一个带有执行器的调节阀。 所有带有执行器的调节阀,无论其用途如何,都需要状态指示、控制命令、故障警报等。 此外,无论阀门使用情况如何,报告和执行这些功能的逻辑通常是相同的。 因此,UDT将每个逻辑函数的相关变量分组在一起,可以用来使逻辑更容易理解和创建具有执行器的调制阀的多个实例。
后记:和西门子官方出的《编程指南》和《编程风格指南》相比,本文不是“标准”,只是适用于一部分项目的部分技术要求,文中一些观点也很值得商榷,欢迎一起讨论。不过某些觉得“老子就是天下第一”“就我说得对,你们都得听我的”,像马大师拥有“接化发”一样拥有“贬骂封”绝招的人,我是十分欢迎你走开的。
remark: 后续会就文中的一些内容提点不一样的看法,也会就另一些内容着重说明一下。