北岛夜话
原创工业智能控制领域(PLC、单片机、嵌入式、机器人、通信)的技术及经验分享。
文章334 浏览2491450

关于计算设备运行时间SCL代码的测试与说明

有小伙伴使用西门子PLC仿真软件对我前段时间写的文章《西门子SCL编程实例-计算设备运行时间(2)》进行了测试,发现OB10中的代码并没有执行,他问是不是代码有问题?尤其是这条语句:

"myEquipmentData".equipment_data[0].totalRunningTime += 1;

这种"+="的写法对吗?

因为我基本不用PLC仿真软件,所以我也不确定是不是仿真软件没有循环中断的功能。但是我有PLC硬件——CPU1214FC,所以我们下载到PLC里来实际测试下吧。

cover.png

首先,解释下这行代码:

"myEquipmentData".equipment_data[0].totalRunningTime += 1;

代码中的"+="是"相加并赋值"的意思。比如"C+=1;"等同于"C:=C+1;"

我最早学习这种语法是在计算机C语言中,现在西门子SCL语言也支持这种语法,能让代码更加简洁;所以这里,并没有问题;

接下来我把代码下载到CPU 1214FC中,并在线监控。

起初,我发现OB10中的值并没有像预期的那样增加。问题出在哪里呢?

打开OB10的属性,查看时间中断的开始时间为2020/1/1-0:00,判断的依据的是系统时间,如下图:

那么目前系统时间是多少呢?

转到【在线访问】-【功能】-【设置时间】,可以看到PLC当前系统时间为2012-1-19 10:06:53,如下图所示:

system_time.png

这个时间还没有到我们设定的时间,因此OB10并没有启动运行;

勾选【从PG/PC】获取选项,点击【应用】按钮,可将PLC的系统时间设置成PG/PC的当前时间,如下图所示:

system_time2.png

设置好时间后,重新对PLC进行在线监控,可以看到计时功能已经启用了。

下图是系统运行了2分钟:

caculate_time1.png

下图是系统运行了5分钟:

caculate_time2.png

好了,关于设备运行时间的SCL代码测试就介绍到这里了。感谢提出问题的小伙伴,在这种提问-回答的过程中,其实对你我都有帮助。大家以后学习过程中有什么问题,欢迎多交流。最后推荐下我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》

感兴趣的小伙伴点击下面的链接看看哦。

新书《西门子S7-200 SMART PLC应用技术》出版了

已经买书还没有进读书群的的小伙伴记得在后台留言哦,拉你进读书群。



取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论