设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子SCL编程实例-计算设备运行时间
返回列表
发新帖
[西门子]
西门子SCL编程实例-计算设备运行时间
[复制链接]
200
|
0
|
2024-4-25 16:56:53
|
显示全部楼层
|
阅读模式
前面我们介绍了西门子SCL编程入门的系列基础教程,今天这篇文章我们做实例讲解——计算设备的运行时间;
说明:本例程使用博途V14开发环境,PLC为CPU 1214C
;
思路如下:
创建用户自定义数据类型:MyEquipment;
创建全局数据块:myEquipmentData;
在启动组织块(OB100)中获取系统时间;
创建功能:FC_Running_Time_Caculate(FC1),用于计算设备运行时间;
在主程序块(OB1)中调用FC_Running_Time_Caculate,计算设备的实际运行时间;
下面来具体实现:
1、创建用户自定义数据类型
用户自定义数据类型可以把不同的数据类型组织到一起,当需要修改的时候只需要在定义中进行修改,其它已经引用的数据会自动修改,非常适合于程序的模块化设计。
本例程我们定义数据类型:MyEquipment,包括如下成员:
number:整数类型,设备的编号;
status:字节类型,设备的状态,0=关机;1=开机;
starting_time:DTL类型,设备的开机时间;
running_time:Time类型,设备的运行时间;
如下图所示:
2、创建全局数据块
创建全局数据块myEquipmentData,新建名称为"equipment_data"的数组,数据类型为"myEquipment",如下图所示:
3、在系统启动块中获取系统时间
添加启动组织块(Startup),在变量声明区声明变量:tmp_system_time和tmp_return_int,如下图所示:
在代码区对全局数据块的设备数组进行初始化,代码如下图:
4、创建功能FC_Running_Time_Caculate
创建功能FC_Running_Time_Caculate来计算系统的运行时间
FC的形式参数:
输入:equip,类型为:MyEquipment;
输出:running_time,类型为:Time;
临时变量:tmp_return_value;tmp_system_time;tmp_caculate_time;
如下图所示:
代码区通过获取当前系统时间,减去设备启动时的时间,就得到设备的运行时间,如下图所示:
5、主程序调用
在主程序中调用FC_Running_Time_Caculate来计算实际的运行时间,并将数值存放到全局数据块的设备运行时间中。代码如下:
好了,这就是SCL语言编写的一个实际例程。在该例程中我们使用了用户自定义数据类型、数组、模块化设计等内容,你可以好好体会下。
对了,我的新书《西门子S7-200 SMART PLC应用技术》已经出版了。如果你感兴趣可以点击左下角【阅读更多】查看详细介绍。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
founderchip
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』