[西门子] 西门子SCL编程实例——定时采样程序

[复制链接]
查看61854 | 回复0 | 2024-4-28 20:34:39 | 显示全部楼层 |阅读模式
在实际项目中会遇到需要定时采样的情况,比如:对心跳计数器的定时采样,以判断通信是否中断;对液体流过体积的定时采样,以判断液体处于流动状态还是静止状态;这些功能,都需要定时采样程序来完成。今天这篇文章,给大家介绍下我用西门子SCL语言实现的一个定时采样程序。



该定时采样程序可以固定的时间间隔对一个整数进行采样,采样的结果会存放到两个整数变量:data1和data2中。data1是奇数次采样的结果,data2是偶数次采样的结果。

程序实现的思路如下:

采样过程分为三种状态:



    奇数次采样:状态激活后采样存放到data1中,并修改状态值为【采样空闲】;

    偶数次采样:状态激活后采样存放到data2中,并修改状态值为【采样空闲】;

    采样空闲期:状态激活后进行空闲计时,当计时时间到了之后,判断之前的采样状态,并切换到另一种状态;

函数块实现:

输入参数三个:



    active:激活或取消采样功能,1=激活;

    timeInterval:采样间隔时间,默认5s;

    sourceData:数据源;

输出参数两个:



    data1:奇数次采样的数据;

    data2:偶数次采样的数据;

输入/输出参数如下图所示:



函数块使用的静态变量如下图所示:



函数块的代码如下图所示:







这个函数块我在实际项目中测试过,感兴趣的小伙伴可以自己测试下。如果发现有任何问题欢迎留言反馈。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则