签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
命名规约
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: 后续会就文中的一些内容提点不一样的看法,也会就另一些内容着重说明一下。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1638784&b_id=50&s_id=0&num=18
先说说标签长度,之所以限于某个数值范围,更多是出于视觉上感观考虑,任何一款编程软件能够在编辑器内显示的长度总有个限制,尤其是当使用多层嵌套的数据结构时,标签长度就会变得很可观了,通常做法是使用“缩写”的形式,来减少标签长度。
再说说“不能使用连续或尾随下划线字符_。”,原因其实很简单,使用"_"是为了“留白”来断句分隔的,当连续使用多个下划线符号时,人的肉眼分辨率有限,很容易观感上出现混淆,如常用的赋值符号“:=",我们在使用时会在其前后分别输入一个空格符号,像这样”SpeedAct := SpeedSet - TestError;"更进一步不符合工程学简约理念,能用一个符号实现分隔的为什么还要用两个?这属于”多用“,同样以"_"结尾更没有必要了,你后面没有“东西”了,你还用它分隔啥?
至于位号,如上面的标签“LTC3_AIT211.HiSetpt”,其中AIT211,变送器的编号“211”对编程的人来说没有多大用处,只是将检测点映射关联到了P&ID中的位置,我们需要的和实际工艺相关的描述性信息却没有包含在内,当然我们可以对其进行扩展一下,将重要的描述性信息写进去,如"LTC3_AIT211_SUCK",表示“吸力”。
至于使用“缩写”,主要考虑减少输入标签时所需要的工作量和时间以及内存方面的因素。
ANSI/ISA-5.1-2009
标准更新了
一些补充资料PLC tag and address naming conventions
ISA.DOC
当你编程到达一定的等级时,就会不满足与自己现在的方式,会发现自己的很多不足。会关注标准化编程,会关注程序框架,楼主的帖子非常棒,学习了!
mark to discuss
看来楼主也是吵架吵烦了,昨天看到一个很好的话题帖子,但是没敢发言,怕被怼。这个标准很好,分享的资料也很有参考价值。我也在做一些行业标准的研究,以后多交流。
@will666 老家乡下有句老话,“宁与明白人干一架,不和糊涂蛋说句话”。
拘于彼此在行业内的身份背景不同,坛里有些人都会说出一些违心的话,做出一些违心的事,无它,形势使然,也是人性在作怪。
不过,该谈看法的还得谈,说的不全面我们可以完善,有瑕疵我们可以改进,无论怎样,我们不因噎废食。
想垄断某一业务的人,看到有其他人言谈涉及业务内容,便以为是要争夺自己窝里的“骨头”一样,人性使然。
有的人以前对别人引用的一些工程理论不以为然嗤之以鼻极尽贬损他人抬高自己之事的人,现在也把“耦合和解耦”挂在了嘴边,写在了文章里,虽然嘴上极不愿意承认一些东西,但是身体还是很诚实的,逃不脱“真香定律”,这种改变还是很让人喜闻乐见的。
过往种种,不过皆是人性使然;自负而又特意标榜自己“创始人”标签还想青史留名的人,看谁都是来抢骨头的。
所以也就不愿意再去说了,有那时间不如多看点杂书,整理点有用的东西。
如果有人试图堵塞你获取信息的其它通道,并希望你只能从他那里获取信息,那么可以百分之百的肯定,这个人怀有私欲,并想通过控制你来达到个人目的。
让我想起论坛某个人,夹带私货太重了...。
甚好啊,直接上了干货,,感谢楼主
今天一进论坛,发现收件箱有8个邮件通知,还都是“精编帖”“快速回复网友提问”,
不对啊,最近我一直在打酱油,没正儿八经地写东西啊?打开一看才发现都和此主贴有关,我纳闷的是,这帖子都发出去差不多半年了,现在突然跳出来这么多精编帖,搞什么飞机啊?
说句大不敬的话,这反射弧真的是够长的。
是发现帖子多少还言之有物还是像90年代的苏联解体那样的刺激一样,让人的内在思想发生了巨变?原因不得而知,不过有句话说得好“伸手不打笑脸人”,多少的我也得投桃报李,是吧?以后呢,我尽量不参加某些相关话题的辩论,免得搂不住火力,发生尴尬。
至于咱手头上不太好找的资料呢,会有选择性的公布,免的发生冲突,影响了阁下经济上的收益;要是想“开放边市,互通有无”呢,咱们也可以,采取最原始的物物交换,不知意下如何?
我只是个“搬运工”,不想做什么“理念创始人”“概念提出者”“运动发起人”等对我来说虚头巴脑不知所谓的名词,也不搞培训授课那一套,更不卖什么东西。
今日点赞都给楼主了,楼主加油啊!
引用详细内容:
最近看了《觉醒年代》,对于思想有一定的启发,我相信以后会不断的影响到我。
前辈,我觉得您所言极是,很多时候,很多争执不是知识的匮乏,就是人性使然。
标准,规范,刚开始做感觉条条框框太多,但是时间一长发现,还是作用很大,受益匪浅
带货的都不敢出来吵吵了,想赚钱只能瞄准刚入门的,老辣都不花钱学习!
命名规则确实很重要,特别是程序量比较大,变量使用比较多的时候,我一般都是在变量上戴帽子来说明变量的性质和作用域,比如说一个和现实场景比较恰当的变量名有可能是函数内的局域变量也有可能是全局变量,也有可能是结构变量,也有可能是位或者是字节或者是字以及浮点数什么的,这些东西在大系统里面要是没有可靠的命名规则就是一场灾难。
命名的习惯各有各自的不同,一般来说我自己是使用的西班牙命名法,另外适合自己应用做了一些修改。
之前记得有人分享过此类的,,是你吧????现在回过头来想看,找不到了呢???能再公布一下?
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录