技术论坛

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

返回主题列表
作者 主题
宁超
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
楼主    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


宁超
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
1楼    2018-11-26 20:37:09
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

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



RENHQ
至圣

经验值: 68883
发帖数: 12216
精华帖: 59
2楼    2018-11-26 21:26:38
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

感谢分享,感觉好高大上

Q群:https://jq.qq.com/?k=9BDuEgf6
yyzx
奇侠

经验值: 6042
发帖数: 939
精华帖: 4
3楼    2018-11-26 22:38:13
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

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

不患无位,患所以立
HUANGZE75
至圣

经验值: 63259
发帖数: 12669
精华帖: 121
4楼    2018-11-26 22:38:47
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

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

'Razor
至圣

经验值: 20094
发帖数: 2767
精华帖: 23
5楼    2018-11-27 01:03:56
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

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

Less is more……
sueyishui
奇侠

经验值: 5108
发帖数: 789
精华帖: 1
6楼    2018-11-27 07:44:25
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册


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

1234567,7654321,9898567
千万个为什么
至圣

经验值: 10581
发帖数: 848
精华帖: 9
7楼    2018-11-27 08:28:47
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

感谢楼主分享

学如逆水行舟,不进则退! wwhoho@163.com
z349568117
侠士

经验值: 1225
发帖数: 43
精华帖: 0
8楼    2018-11-27 08:53:49
主题:回复:[TIA]我使用的博途功能块-“干货”功能块开发手册

多谢楼主分享。

不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
9楼    2018-11-27 10:44:57
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册


感谢分享!

邮箱 yongquancun@126.com
yecao2006
至圣

经验值: 18013
发帖数: 1524
精华帖: 2
10楼    2018-11-27 11:25:31
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

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

我回来了!继续努力!
耀眼光芒
侠圣

经验值: 2331
发帖数: 382
精华帖: 3
11楼    2018-11-27 15:48:59
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册
做的不错 可惜非常不完整 可以参考借鉴 但是真正现场使用应尽量使用经过现场验证的程序
工艺第一& 我所说的一切均代表个人意见
kayome
奇侠

经验值: 6858
发帖数: 1351
精华帖: 5
12楼    2018-11-28 08:17:09
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

 宁侠太谦虚了,

Qin.
侠圣

经验值: 3893
发帖数: 236
精华帖: 1
13楼    2018-11-28 08:27:51
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

 好好学习一下

Stay Hungry ,Stay Foolish .
ifang
奇侠

经验值: 8557
发帖数: 1827
精华帖: 4
14楼    2018-11-28 08:35:50
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册


的确是干货满满啊~

学无止境
liucs_2009
奇侠

经验值: 8354
发帖数: 580
精华帖: 5
15楼    2018-11-28 08:54:27
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

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

工控生活、精彩人生
must努力
侠士

经验值: 1917
发帖数: 197
精华帖: 1
16楼    2018-11-28 09:13:41
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

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

多点努力,少点依赖
Mr S
侠圣

经验值: 3723
发帖数: 486
精华帖: 1
17楼    2018-11-28 10:39:09
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册

感谢分享,学习学习。

永无止境!
szcs2007
游民

经验值: 66
发帖数: 8
精华帖: 0
18楼    2018-11-28 12:14:57
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册
感谢楼主的分享!
寻仙
游侠

经验值: 395
发帖数: 25
精华帖: 0
19楼    2018-11-28 16:48:01
主题:回复:[博途]我使用的博途功能块-“干货”功能块开发手册



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

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。