PLC编程案例46 每月天数计算
一、PLC控制任务说明
要求用博图S7-SCL语言编程实现,即对每月的天数进行计算并保存输出到指定存储器。
二、创建块接口参数如图一所示
图一
三、每月天数的计算方法一般采用CASE指令,分为三种情况。第一种情况,即有31天的月份,分别是1、3、5、7、8、10、12月。第二种情况,即有30天的月份,分别是4、6、9、11月。第三情况是2月,分闰年和非闰年,闰年为29天,非闰年为28天。其中,闰年的计算方法为:闰年公元纪年的年数可以被4整除,并且遇到被100整除而不能被400整除的为非闰年,被100整除也可以被400整除的为闰年。例如2000年是闰年,而1990年就不是。源码如图二所示
图二
普天之下,粉丝最大,如果感觉我的编程案例对你有用,点赞并关注我,是我编程的动力,会不定时分享博途程序案例给大家学习,谢谢!
PLC工程师一步一步教你顺倒计时百天程序设计
前言
编写时间程序时,大家都知道时间增减规律,利用1天=24小时、1小时=60分、1分=60秒这个规律编辑程序,使用数据寄存器D,通过触摸屏监视运行时间,本次程序并不是唯一顺倒计时程序,有朋友也使用定时器与计数器完成,也有使用四则运算完成,能达到要求均可。利用加一减一指令是为了方便监控,且减少程序步骤,希望能对读者有所帮助。——技成杨遇桥
程序 如下图:
细节分析
可以通过输入触点X0和触摸屏中的按钮M0的脉冲信号控制PLC输出触点输出。
输出常开触点确保是设备在运行的状态下开始顺计时。
利用M8013特殊辅助触点脉冲信号做每秒接通一次。
再使用INC加一指令进行每秒计时。
通过触点比较指令,当D0的值计数到60秒时,使D1值加1,即D1等于1分钟。
同时利用MOV传送指令把0传送给D0,这样D0又能从0开始加到60,实现一分钟循环计时。
通过触点比较指令,当D1的值计数到60分钟时,使D2值加1,即D2等于1小时。
同时利用MOV传送指令把0传送给D1,这样D1又能从0开始加到60,实现一小时循环计时。
通过触点比较指令,当D2的值计数到24小时时,使D3值加1,即D3等于1天。
同时利用MOV传送指令把0传送给D2,这样D2又能从0开始加到24,实现一天循环计时。
后面天数到达部分没有编写,可以自行添加,当天数达到100天时,停止输出即可,如图:
利用触摸屏上按钮M1,手动进行清零。
ZRST成批复位指令,把D0到D3中间的所有数据寄存器清零。
同时用RST指令复位Y0停止输出。
用开机脉冲,通过传送指令,给数据寄存器赋值。
M8002,开机脉冲,开机的瞬间产生一个脉冲信号,其他时候不接通。
然后把时间参数传送给数据寄存器D10、D11、D12、D13。
可以通过输入触点X3和触摸屏中的按钮M10的脉冲信号控制PLC输出触点输出。
在设备有输出的时候,利用M8013每秒接通一次驱动DEC减一指令开始进行减计时。
当D11的60数值减到0时,利用触点比较指令驱动减一指令,使D12的数值减一。
同时利用传送指令给D11重新传送一个60的数值进去,达到60秒循环。
当D12的60数值减到0时,利用触点比较指令驱动减一指令,使D13的数值减一。
同时利用传送指令给D12重新传送一个60的数值进去,达到60分钟循环。
当D13的24数值减到0时,利用触点比较指令驱动减一指令,使D10的数值减一。
同时利用传送指令给D13重新传送一个24的数值进去,达到24小时循环。
用触摸屏上的按钮M1和外部输入触点X4的脉冲信号给数据寄存器清零。
同时停止Y1输出。
同样的,没有做时间到了之后的程序内容,可以利用天数为零时,停止设备输出,如下图:
相关问答
s7-400怎么就地重启?
要在S7-400PLC上进行就地重启,可以按照以下步骤操作:首先,通过连接到PLC的编程软件,进入PLC的编程界面。然后,找到并选择PLC的系统设置或配置选项。在系...
英语翻译A.ProductionCapacity:a.Capacity:300,000Capsper...
A.ProductionCapacity:生产能力a.Capacity:300,000Capsperhr.容量:300000金属盖每小时b.Shift:Twoshiftsperday...
你最想在哪一个城市生活,为什么?
在济南待惯了,觉得哪里也不如济南,也可以说济南是我第二个家。济南人直爽豪放粗犷,有时说话带脏字,尤其是这种人我特欣赏,他可能今天给你打了架,也可能骂了...3...
试用期三天过了,提离职有工资嘛?-找法网
立即咨询bafv****obwldo11分钟前提交了咨询plc1****0arowz3分钟前提交了咨询...工资按照你的出勤天数发放。劳动合同法第37条规定,劳动者提前30天以书面形人咨...