江西省赣州市西门子中国总代理-西门子选型-西门子技术支持-西门子维修服务

供应商
湖南西控自动化设备有限公司
认证
联系电话
15344432716
手机号
15386422716
销售顾问
杨本刚
所在地
中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301
更新时间
2024-12-13 08:50

详细介绍

1.1沿指令概述

      沿指令即在程序中用于检测信号的上升沿或下降沿的指令。

      在simatics7-1500和s7-1200plc中,选择编程语言为scl时,可以看到tiaportal软件自带两个指令分别用于检测信号的上升沿和下降沿,如图1所示:

 

图片

图1

   在程序中调用r_trig或f_trig时,系统会自动生成1个背景db块,用于存放检测信号的边沿存储位,当程序中有较多信号需要检测上升沿或下降沿时,就会产生多个背景db块,这样一来,过多的背景db块不仅仅不便于管理,且会过多占用cpu宝贵的存储区。

     以simatics7-1200plc为例,存储区分为工作存储区,装载存储区,保持性存储区,其中工作存储区和保持性存储区不可扩展,不同的cpu具有不同大小的存储区,如图2所示:

 

图片

图2

     假设选定s7-1211c进行编程,如果在程序中应用了很多r_trig或f_trig指令,则实际程序需要的工作存储区有可能超过50kb,此时需要更换工作存储区更大的plc来加以解决,所以适当优化程序,占用较少的工作存储区,十分必要。

      本文以s7-1200为例,皆在阐释如何使用scl语言开发沿指令以减少工作存储区使用。

1.2开发检测上升沿指令

      为了不产生背景db块,我们在fc中使用scl语言进行开发,并引入第三方变量作为检测信号的边沿存储位。

新建fc

新建fc并选择编程语言为scl,fc块命名为:risingedgedetection,如图3所示:

 

图片


图3


定义接口

根据编程需要定义接口变量,并写明注释,修改return变量的数据类型为bool,用于输出上升沿信号,持续一个周期,如图4所示:

 

图片


图4

编程

根据上升沿检测原理进行编程,编程思想如下:

当 #signal由0变成1时,此时作为边沿存储位的#thirdvariable仍保留#singal信号上一周期的状态,#thirdvariable为false,此时满足if语句,risingedgedetection被赋值为true。

当 #signal由0变成1后的下一周期,#thirdvariable上个周期已被#signal赋值为相同状态,即#thirdvariable和#signal都为true,则不再满足if语言,risingedgedetection被赋值为false。

risingedgedetection输出持续一个周期。

程序代码如图5所示:

图片

图5

1.3开发检测下降沿指令

与开发检测上升沿指令类似,新建fc并定义接口变量,这里不再一一赘述。在编程上两者有所不同,其编程思想如下:

当#signal由1变成0时,此时作为边沿存储位的#thirdvariable仍保留#singal信号上一周期的状态,#thirdvariable为true,此时满足if语句,fallingedgedetection被赋值为true。

当#signal由1变成0后的下一周期,#thirdvariable上个周期已被#signal赋值为相同状态,即#thirdvariable和#signal都为false,则不再满足if语言,fallingedgedetection被赋值为false。

fallingedgedetection输出持续一个周期。

程序代码如图6所示:

图片 图6


展开全文
我们的资质
资质名称:
代理证书
资质证件号:
202411061503
到期时间:
2025年10月30日
我们其他产品
我们的新闻
相关产品
西门子plc 西门子低压电器 西门子工控机 西门子电动阀 西门子 西门子变频器 西门子接触器 西门子减速机 西门子调节阀 西门子断路器 西门子贴片机 西门子人机界面 西门子电磁阀
微信咨询 在线询价 拨打电话