【方正智芯】西门子SCL编程实例-计算设备运行时间

前面我们介绍了西门子SCL编程入门的系列基础教程 , 今天这篇文章我们做实例讲解——计算设备的运行时间;
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
说明:本例程使用博途V14开发环境 , PLC为CPU1214C;
思路如下:
创建用户自定义数据类型: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" , 如下图所示:
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
3、在系统启动块中获取系统时间
添加启动组织块(Startup) , 在变量声明区声明变量:tmp_system_time和tmp_return_int , 如下图所示:
在代码区对全局数据块的设备数组进行初始化 , 代码如下图:
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
4、创建功能FC_Running_Time_Caculate
创建功能FC_Running_Time_Caculate来计算系统的运行时间
FC的形式参数:
输入:equip , 类型为:MyEquipment;
输出:running_time , 类型为:Time;
临时变量:tmp_return_value;tmp_system_time;tmp_caculate_time;
如下图所示:
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
代码区通过获取当前系统时间 , 减去设备启动时的时间 , 就得到设备的运行时间 , 如下图所示:
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
5、主程序调用
在主程序中调用FC_Running_Time_Caculate来计算实际的运行时间 , 并将数值存放到全局数据块的设备运行时间中 。 代码如下:
【方正智芯】西门子SCL编程实例-计算设备运行时间
文章图片
【【方正智芯】西门子SCL编程实例-计算设备运行时间】好了 , 这就是SCL语言编写的一个实际例程 。 在该例程中我们使用了用户自定义数据类型、数组、模块化设计等内容 , 你可以好好体会下 。