台达PLC万年历 台达小型PLC的万年历 顶 9踩 1回复 21 | 人气 2590 | 打印 3 给TA发消息 加TA为好友 发表于:2012-12-21 17:06:41 楼主 看到有坛友咨询台达PLC的万年历问题,今天特意看了一下,详解如下和大家探讨: 1. 不是所有系列均支持万年历,台达手册上将小型PLC分了三大类,一类是EH/SV系列,一类是SA/SX/SC系列,一类是ES/EX/SS系列,只有前两类PLC支持万年历,后一类不支持。 可以在WPLSoft 2.30编程环境下通过设置PLC机种,然后编写TRD读时钟指令看编译通过后能不能正常下载进PLC来验证该型号是否支持万年历。例如如下程序: 秦君_1 个人主页 图1 编译后,下载,如果PLC机种不支持万年历,则会弹出如下提示: 图2 同时出现“ERROR”指示灯亮,PLC不能正常工作。 注: 1)这一点我觉得WPLSoft 2.30编程环境不够给力,所选机种既然不支持万年历,指令就不应该正常编辑或者编译时应该报错,不要等到下载后才给出错误。 2)貌似第二代SS2也支持万年历,但是由于这个系列PLC没有电池供电,PLC电源断开后万年历就会丢失,觉得没有多大意义,完全是鸡肋。 对于支持万年历的EH/SV系列,由于有电池供给,PLC即使断电,内部时钟也会正常更新。 2. 对于支持万年历的EH/SV系列,存储秒分时日月星期年的特殊寄存器如下: 图3 将图一程序下载进EH2,在连机的情况下设置PLC时钟。 编程软件中点击“设置”——“万年历设置”弹出如下对话框: 图4 点击“设置”后,PLC中的时间日期就会更新成为联机PC的时间日期,此后PLC就会自动不断更新万年历(除非断电后电池没电)。当然也可以点击“重置RTC”,结果是将PLC中的时间恢复到出厂默认值:2000/01/01 上午12:00:00 星期六。 设置PLC时间后监控截图如下: 图5 可以看出PLC中的万年历完全开始自主执行起来了。 TRD D0指令执行结果是将PLC中储存的万年历数据传送到以D0开头的连续7个16位寄存器中,即:D0-D6中。 这样我们可以在程序中随时利用D0-D6中的实时时间与设定的时间作比较完成与时间有关的逻辑。 需要注意的是TRD指令读出来的万年历是按我们的习惯年-星期-月-日-时-分-秒顺序排序,对应存储在D0-D6,而内部特殊寄存器以上顺序对应的是D1319_D1313。 本文来源:https://www.wddqw.com/doc/4c88672e3186bceb18e8bb43.html