技术论坛

[博途]我使用的博途功能块-“干货”功能块开发手册

作者 主题
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
主题:【分享】[博途]我使用的博途功能块-“干货”功能块开发手册
精华帖精华帖星级5级 推荐帖


只看楼主 只看精华 楼主 2018-11-26 20:24:51

我一直再说库库库,但是我的库做的到底怎么样了呢?看官请赏脸评上几句,我还很年轻。以下都是开发手册的截图:

TIA Programming Add-On Instructions and Graphics

Single-Speed Motor



说明... 3

前言... 4

概览(Overview) 6

要求与前期准备... 7

1 AS Block制作(Creating AS block) 7

1.1 块属性... 9

1.2 声明部分(Declaration section) 10

1.3 程序(Instructions)... 12

2 Faceplate弹出面板的过程设计... 18

2.1     画面结构... 18

3 Icon制作(Creating icon) 23

3.1 分解... 23

3.2 步骤... 23

3.3 接口... 27

3.4 事件... 27

4 Faceplate制作(Creating and configuring faceplate) 29

4.1 主画面(Main screen) 29

4.2 标准视图(Standard screen) 31

4.3 消息视图(Message screen) 37

4.4 参数视图(Parameter screen) 38

4.5 预览视图(Preview screen) 40

4.6 操作记录(Operation logging) 40


前言

本文档详尽描述了Motor实例实现的步骤,但是更希望读者能理解的是创建实例的思想。在实例开发前有一些必须思考的问题:

1.使用成本

2.学习成本


使用成本

l  WinCC Power Tags 变量授权

如果基于TIA实例开发要用于工程项目,那么购买正版软件是必不可少的,HMI根据上传的变量数Power Tags收费,如左图所示将电机的状态、操作等布尔标志打包到字或双字将是很有必要的,不但节省了Power Tags也减小了HMI与PLC之间的通讯负荷。

面向电机对象创建实例提高效率

       实例引导着工程师逐步完成结构化编程,将工厂控制系统拆分为控制单元,再拆分后就是电机、阀门、模拟量监视、PID等控制对象,工程师根据控制单元创建FC并在其中调用电机、阀门、PID等FB实例组合,编写一些外围的逻辑完成控制任务,最后由组织块OB调用控制单元FC就组成了整个控制系统程序。

      变量名(标识符)在新工程师的项目里经常可以看到中文、拼音、无意义的“A1”、“B2”这样的变量,上传到WinCC的变量也可能是I、Q、M、DB区地址,这些都是新手常见的错误,而实例AS block采用FB编程,所有上传的变量都是背景数据块,变量无需再次命名。实例的变量命名满足IEC-61131-3标准的情况下,并借鉴IT的一些命名规则,直接省去了创建变量名的工作,因此杜绝了新工程师犯这些常见的错误方法。


不局限于PLC编程,实例开发还包括icon和faceplate,在实例的faceplate中以下功能常常需要编写C脚本或者手动组态,而这些对于一个年轻工程师来说工作过于复杂:

-          每个操作按钮分配了控制权限,权限来自面板使用者权限等级的定义如:工程师,维护,操作员, 生产组长,同时还结合块内部算法,如:就地模式时,面板不允许启停电机,防止误操作。


-          按钮和参数修改等操作还会生成可查询的操作记录,为还原事故过程提供依据。


-          通用的报警消息的归档与显示:电机保护、运行错误、反馈错误、外部错误、运行时联锁、外部消息1/2。

-          多语言切换。 (默认提供中英)


-          使用结构变量,每个实例电机只需要在icon上连接2个变量即可完成所有的监视和控制的变量连接。Faceplate通过icon获取变量前缀,调用结构变量,faceplate无需连接手动输入任何变量。


学习成本

编程语言的选择

       市面存在可以商品化的实例开发基本选用的开发语言是STL和SCL,而近些年基于SCL的开发更是大热,西门子PCS7 APL高级过程控制库,BST实例,IL工业库开发语言都选择了SCL。 STL运行是最接近机器语言的,但可读性却是最差,SCL精于算法,却不适合布尔逻辑控制。电机实例的AS Block基本属于布尔逻辑控制,用LAD控制更直观。以一段PCS7 APL源代码为例,其嵌套关系很难一眼就看出:

    xBumplessAllowed :=
    (     
        (
                (NOT OpenAut.Value AND xFeatSwitchMode)  
            AND
                (NOT (Ctrl.Value XOR SafePos))
        )    
        OR    
        (
            xFeatSwitchMode AND OpenAut.Value AND (Ctrl.Value XOR SafePos)
        )
    )   
    OR  
    (   
             NOT xFeatSwitchMode      
        AND  
        (    NOT (Ctrl.Value XOR SafePos)  =     CloseAut.Value )  
        AND
        (         (Ctrl.Value XOR SafePos)  =     OpenAut.Value )
    )
    OR
    (   NOT xFeatSwitchMode AND NOT CloseAut.Value AND NOT OpenAut.Value )
    OR
    (   NOT xFeatSwitchMode AND     CloseAut.Value AND     OpenAut.Value )
    ;

l  使用实例执行项目

       以新手编写一个项目程序为例,300点的项目可能需要研究二个月时间,用实例库包含第一次使用熟悉实例再加上编程可能也是二个月,项目最后都完成了,但是项目的工程质量却不是一个等级。实例前期开发充分考虑了程序的结构、优化和美观以及用户要求( 操作记录,双语切换,变量与消息归档等 )。当使用者第2次再使用实例做工程时的效率就会得到飞升。


概览(Overview)

图片展示的是控制和监视一个固定速度且只有一个转动方向的直接启动电机的AS block ,icon和faceplate。

Motor主要功能如下:

- 在手自动模式下启动停止电机

- 监视反馈信号

- 监视连锁信号条件,停止电机或阻止电机启动

- 提供仿真功能,在仿真模式下屏蔽启动命令

- 提供报警如:启动错误,停止错误,电机保护,外部故障

- 提供手动、自动面板选择,显示就地信号和程序控制(变量连接或Graph控制)

开发手册-电机实例1.rar

开发手册-电机实例2.rar

开发手册-电机实例3.rar

开发手册-电机实例4.rar

开发手册-电机实例5.rar



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1525073&b_id=66&s_id=0&num=53

至圣

经验值: 11495
发帖数: 1028
精华帖: 39
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 楼主 1楼 2018-11-26 20:37:09

1.2.3 命名规则(Case)

程序命名在符合IEC标准的同时,借鉴了IT的命名法,已Hungary Case和Camel Case为主,其中Block的IN/OUT/IN_OUT都采用了Camel Case命名法,静态区使用的是Hungary Case。对于常见的缩写如PV、SP、MV、OS、OP等按照行业习惯采用直接缩写的方式,这些缩写与之后的单词间需要区分时采用下划线,如OS_Perm,PV_ScaleHigh。

 

IEC61131-3

IEC 61131是国际电工委员会(IEC) 制定的可编程逻辑控制器标准。在接口命名时定义只能使用数字和字母以及下划线。以下命名对比说明标识符的使用规则:

Abc    √     1Abc     X (开头字母是数字)

Abc123 √     Abc 123  X (使用了空格符号)

A_Bc123√     A__Bc123 X (连续使用下划线)

 

命名法

Hungary case(匈牙利命名法):

这种命名法是一位匈牙利程序员发明的,后来作为了一种命名规范,基本原则是:变量名=属性+类型+对象描述

在程序源代码中就使用了如SxRedayToReset的变量命名,其中S是属性来自静态变量区,x是数据类型布尔,ReadyToStart是描述。

CamelCase(大驼峰命名法)

正如它的名称CamelCase所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。当变量名或块名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母。如FbkRunOut,MonDynErr等命名就是参照该命名法。


1.3 程序(Instructions)


Network 5: Operate: man / auto 

非就地模式 时,电 机控制模式切 换 来自操作 员 命令或者程序控制 ModLiOp =1 程序 获 取切 换电 机模式的 权 限 

ManModLi=0,AutModLi=1 程序控制 电 机至自 动 模式 当 电 机不存在任何模式 时, 置位手 动 模式


Network 11: Show automatic preview in the standard view

"AutoSart" display is only visible manual mode , local mode or with a reset request in automatic mode 当 电 机 处 于以下情况 时 1 就地模式 2 手 动 模式 3 自 动 模式且故障 startAut =1 ,StopAut=0 将有可能因 为 模式切 换 或者故障复位后 导 致 电 机的由停止状 态 到直接运行 , 可能 产 生人身 伤 害事故 因此有提示 StartAutView输 出 , 当它置位 时, 操作 员应 注意以上提到的情况。


MotS.rar




 
以下网友喜欢您的帖子:

  
版主

经验值: 69025
发帖数: 12257
精华帖: 59
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 2楼 2018-11-26 21:26:38

感谢分享,感觉好高大上


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
奇侠

经验值: 6042
发帖数: 939
精华帖: 4
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 3楼 2018-11-26 22:38:13

高端大气上档次!!谢谢分享!!


不患无位,患所以立
以下网友喜欢您的帖子:

  
至圣

经验值: 63470
发帖数: 12672
精华帖: 121
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 4楼 2018-11-26 22:38:47

非常不错的分享,收藏了,宁大侠,年轻有为啊


 
以下网友喜欢您的帖子:

  
至圣

经验值: 20123
发帖数: 2775
精华帖: 23
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 5楼 2018-11-27 01:03:56

楼主是有心人,将工程实践的经验升华为具有指导意义的理论,赞一个!


Less is more……
以下网友喜欢您的帖子:

  
奇侠

经验值: 5119
发帖数: 790
精华帖: 1
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 6楼 2018-11-27 07:44:25


除了高端大气上档次,我想说的是,应用也不错


1234567,7654321,9898567
以下网友喜欢您的帖子:

  
至圣

经验值: 10588
发帖数: 848
精华帖: 9
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 7楼 2018-11-27 08:28:47

感谢楼主分享


学如逆水行舟,不进则退! wwhoho@163.com
以下网友喜欢您的帖子:

  
侠士

经验值: 1225
发帖数: 43
精华帖: 0
回复:[TIA]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 8楼 2018-11-27 08:53:49

多谢楼主分享。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 9楼 2018-11-27 10:44:57


感谢分享!


邮箱 yongquancun@126.com
以下网友喜欢您的帖子:

  
至圣

经验值: 18061
发帖数: 1524
精华帖: 2
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 10楼 2018-11-27 11:25:31

宁侠做得分享太好了,谢谢。


我回来了!继续努力!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2331
发帖数: 382
精华帖: 3
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 11楼 2018-11-27 15:48:59
做的不错 可惜非常不完整 可以参考借鉴 但是真正现场使用应尽量使用经过现场验证的程序

工艺第一& 我所说的一切均代表个人意见
以下网友喜欢您的帖子:

  
奇侠

经验值: 6859
发帖数: 1351
精华帖: 5
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 12楼 2018-11-28 08:17:09

 宁侠太谦虚了,


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3893
发帖数: 236
精华帖: 1
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 13楼 2018-11-28 08:27:51

 好好学习一下


Stay Hungry ,Stay Foolish .
以下网友喜欢您的帖子:

  
奇侠

经验值: 8613
发帖数: 1829
精华帖: 4
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 14楼 2018-11-28 08:35:50


的确是干货满满啊~


学无止境
以下网友喜欢您的帖子:

  
奇侠

经验值: 8355
发帖数: 580
精华帖: 5
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 15楼 2018-11-28 08:54:27

感谢楼主分享,技术好,还喜欢分享的人,是值得人钦佩的


工控生活、精彩人生
以下网友喜欢您的帖子:

  
侠士

经验值: 1917
发帖数: 197
精华帖: 1
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 16楼 2018-11-28 09:13:41

在汽车厂见过西门子官方根据SICAR标准开发的库功能块,厉害到看不懂


多点努力,少点依赖
以下网友喜欢您的帖子:

  
侠圣

经验值: 3723
发帖数: 486
精华帖: 1
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 17楼 2018-11-28 10:39:09

感谢分享,学习学习。


永无止境!
以下网友喜欢您的帖子:

  
游民

经验值: 66
发帖数: 8
精华帖: 0
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 18楼 2018-11-28 12:14:57
感谢楼主的分享!
 
以下网友喜欢您的帖子:

  
游侠

经验值: 395
发帖数: 25
精华帖: 0
回复:[博途]我使用的博途功能块-“干货”功能块开发手册
推荐帖


只看楼主 只看精华 19楼 2018-11-28 16:48:01



满满干货,启发很大,感谢分享


 
以下网友喜欢您的帖子:

  
收起
[博途]我使用的博途功能块-“干货”功能块开发手册
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。