技术论坛

 安全集成SPL的安全逻辑程序safe.spf

返回主题列表
作者 主题
gelu172
至圣

经验值: 11684
发帖数: 1354
精华帖: 32
楼主    2017-09-16 10:22:33
主题:安全集成SPL的安全逻辑程序safe.spf 精华帖 

这次,我和大家简答聊聊安全集成SPL的核心,safe.spf的安全逻辑。

上回说了,safe.spf的两种启动方式MD20108。直接启动方式没有什么可说的,这里说一下prog_event的启动方式。

Prog_event的启动在目录cma.dir下边,至于哪个文件,需要查看MD11620,一般默认为prog_event.spf,但是也有部分用户另外起名字的,为了避免大家找不到,这里特别贴出来。

那么,再cmd.dir下边找到该文件,cycpe_ma.spf。打开看一下其内容。

可以看到,其正常格式,就如上图所示,$P_PORG_EVENT==4,就是power on时,调用safe.spf程序,注意注明路径,多个程序共同调用时,safe.spf放在最后。这样safe.spf就生效了。

接下来,就可以看看safe.spf如何编程了。

第一部分,DEFINE区域,定义各个变量名,使其更具有可读性。这部分可以省略,如果你不想让你的客户太容易看懂的话。

第二部分,正文部分。

首先需要注意ID和IDS的区别。ID仅在单一方式组下,使用的同步条件,一般都是自动模式。IDS则是跨方式组运行,随时需要判定的同步条件。对安全集成而言,自然是不论自动还是手动,亦或MDA,都必须时刻生效的。所以这里的同步条件,一定是IDS,同样,这也解释了,为什么安全集成,必须使用M43这个option的原因。

一般的逻辑,都是将安全输入信号$A_INSE通过一定的逻辑运算,最终给到$A_OUTSI。比较复杂的逻辑,会在当中,加入大量的中间变量$A_MARKERSI过渡,使其更有条理,配合解说文字,使程序更具可读性。

如上图所示,就是将之前逻辑运算之后的$A_MARKERSI给到$A_OUTSI,使整个逻辑完整。最后OUTSI再通过上讲中提到的内部SGE信号,通过MD36970+的参数,给出各个轴的停止响应,操控各个轴的运行状况。从而完成整个逻辑回路。

在SPL中,有一部分功能比较特殊,TEST STOP和SAFETY BRAKE TEST,这些信号只能由PLC独立完成,NC并不参与,这些信号是比较特殊的非双通道校验原理运作的,但是其仍然要遵守安全集成的双通道校验规则,所以这部分信号是否能通过安全测试,需要PLC来告诉NC,这部分动作,也在safe.spf中完成,利用的参数是$A_PLCSIIN,该参数也负责其它一些需要PLC直接告诉NC的参数设定。

归根结底,NC端的SPL,就原理而言,其实safe.spf只负责前半部分。后半部分由参数设定给到内部SGE信号来完成。这个和PLC的从头到尾一手抓有本质区别。这个大家要注意的。下次有时间,我会写一下PLC编程的注意事项,大体原理和NC同,但是没有任何系统参数可以借助,全部是自身PLC的接口信号完成。

下午还要陪女儿去读英语,到此为止吧。


千万个为什么
至圣

经验值: 10588
发帖数: 848
精华帖: 9
1楼    2017-09-16 11:23:47
主题:回复:安全集成SPL的安全逻辑程序safe.spf

厉害,希望有机会可以实践一下。

学如逆水行舟,不进则退! wwhoho@163.com
风过留y
奇侠

经验值: 6046
发帖数: 446
精华帖: 16
2楼    2017-09-16 11:44:40
主题:回复:安全集成SPL的安全逻辑程序safe.spf

 前排支持。

接着gelu大侠的话题说两句。

1、安全程序使用的IDSxx必须通过以下参数激活保护:

MD11500[0] $MN_PREVENT_SYNACT_LOCK
MD11500[1] $MN_PREVENT_SYNACT_LOCK

下标0 and 1参数分别表示安全同步指令IDS起始地址和结束地址。如果(MN_PREVENT_SYNACT_LOCK [0.1]等于0)NCK-SPL的保护机制不激活,当NCK和PLC之间的交叉数据比较开始时显示报警27095。

2、同步动作和安全同步动作单元的数量:

28250 MM_NUM_SYNC_ELEMENTS

28251 MM_NUM_SAFE_SYNC_ELEMENTS

28250和28251分别包含同步动作和安全同步动作单元的数量,28251一般设置为500单元。

运动同步动作的表达式保存在控制器的存储单元中。一个运动同步动作至少占用4 个单元,而一个单元消耗64字节内存说明消耗还是蛮大的。
具体占用情况如下:
条件中的每个操作数占用1 个单元
每个动作最少占用1 个单元
每个赋值指令占用2 个单元
复合表达式中每个操作数占用1 个单元

所以同步动作中的操作数和表达式等越多暂用的的同步动作单元也越多,这就需要通过选项增加单元数量。这在编程时需要特别注意。

3、宏指令技术 (DEFINE...AS)

本人第一次接触时也不是特别明白下面稍微讲一下,DEFINE...AS指令用于定义复合功能,只需执行一次就可以一直重复使用,比如我执行;

N10 DEFINE  function  AS M50 M51 M52,AS后面最多带三个指令;

那么接下来执行宏指令;

N20 function ;那么M50 M51 M52三个指令都会被执行,方便记忆管理。

那么下面的指令就是当执行 IE_NOT_AUS_PULT时自动取变量$A_INSE[01]的值,也是方便记忆管理的方式。

N120 DEFINE IE_NOT_AUS_PULT      AS $A_INSE[01]   ;   DBX38.0

水平有限就讲怎么多吧,和gelu大侠差远了。


分享技术,共同进步。
渔明鱼工
至圣

经验值: 23905
发帖数: 2059
精华帖: 78
3楼    2017-09-16 15:42:47
主题:回复:安全集成SPL的安全逻辑程序safe.spf

感谢楼主分享,虽然没接触过数控安全系统,我看了也学了不错不错点赞。

网鱼能够改善伙食,还能释放工作中的压力。
菲戈
至圣

经验值: 28623
发帖数: 5906
精华帖: 61
4楼    2017-09-17 14:27:08
主题:回复:安全集成SPL的安全逻辑程序safe.spf

好东西,建议大家收藏先

欢迎交流,QQ:2301013064 邮箱:feige6@139.com
隐身人
至圣

经验值: 38691
发帖数: 10354
精华帖: 72
5楼    2017-09-17 16:17:02
主题:回复:安全集成SPL的安全逻辑程序safe.spf

安全集成方面的知识,是当前坛友都不常接触的,希望楼主多发些此话题的帖子,我一直有闲暇时嘉一直参与此类话题,目的就是让坛友先了解早入手。

西门子的多年使用者http://yinshenren.ys168.com/、
lranbing
至圣

经验值: 21702
发帖数: 8417
精华帖: 46
7楼    2017-09-20 08:50:17
主题:回复:安全集成SPL的安全逻辑程序safe.spf

 这方面的帖子不多,好帖子更少,先收藏好慢慢看。

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