准确说,是SIMATIC 定时器。
就是过去的那种T100, T101那样的定时器。
这种定时器T,是一种特殊的寄存器,和内存寄存器一样,存在于CPU的系统中的。
(计数器C也完全一样,以下和以前也都不提及的原因是PLC编程中其实计数器很少用到)
因为是寄存器,所以就有资源限制,而且还与CPU的型号版本都有关。也可以从CPU的样本参数中查到。比如过去CPU315的定时器可以有256个,后来升级了,同样315,可以有512个。
因为有资源限制,所以有编号,比如从T1到T512。
说TIA PORTAL里面没有定时器T了,其实也不完全准确。准确说, 是S7-1200里面没有了。 非要输入定时器变量%T100的话,会报错。
我现在写这个话题,是因为我刚刚发现的。上一篇文章,《【万泉河】PORTAL中定时器的使用方法,及封装改造一个浮点数的定时器》,我提到:
到PORTAL时代,过去传统意义上的作为一种特殊的寄存器的定时器TIMER,已经不存在了。即,现在编程已经不能使用T1,T2,T3这样的用法。取而代之的是IEC定时器。即相当于STEP7时代的SFB4。
但其实只是我在S7-1200中没找到。
后来有读者在公众号后台回复,问,为什么TIA PORTAL没有定时器T了?
我想了一下,这好像是个大问题,然后就查阅了资料,并到德国网站上查阅了相关信息,才发现,S7-1500中其实还是有的。
只不过没放在通常的指令表里,而是藏在一个“原有”的文件夹里。
但为什么会这样?PORTAL的帮助系统中并没有提及。
德国网站上也只是在论坛中有一个不明身份的专家提及, SIMATIC TIMER 在S7-1500中继续存在只是为了兼容升级旧程序的。
我认为此解释可以接受。
那么,回到那位读者的问题,为什么TIA 系统要逐渐取消TIMER了?
现在要回答解释这个问题,对我来说,太难受了。
我一度时间线错乱,甚至感觉有点穿越。
2018年, 我曾经发表了两篇文章:
【万泉河】好的PLC程序和坏的PLC程序的比较标准
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1479565&b_id=82&s_id=&num=174#anch
【万泉河】我现在告诉你们不用M和T的程序好在哪里
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1479565&b_id=82&s_id=&num=174#anch
主要观点是,好的PLC程序不要使用M和T。
文章一出,在国内业界石破天惊,引来讨论与质疑不断。
其中有一种典型的质问是:西门子在系统中明明设计了定时器TIMER,你为什么不许我们用?
这问题的逻辑本身是有问题的。
1, 大路朝天, 各走一边。 你做你的程序,我做我的程序。 我只不过提出了一个标准,给大家提出了一些建议,并不具任何强制力,自然也不存在禁止使用什么功能或者方法的问题。
2, 系统有,所以就要用。这逻辑也不对。 就好比小女孩大冬天的要穿连衣裙,妈妈不同意的话,就要闹,我有连衣裙,为啥不让我穿?肯德基在卖的冰淇淋,那么多哥哥姐姐都在买,为啥偏偏不许我吃?逻辑上基本上都是小孩子的取闹逻辑。
但抛开这些逻辑漏洞不谈,现在来看,最根本的一点是,那个时候我根本不知道西门子已经在TIA里面,至少在S7-1200里面,把定时器寄存器取消了!
人家系统里面已经取消了的功能,我还装作先知先觉的写了篇文章,然后国内的读者们也后知后觉的跟我吵架吵了有小一年,而且过程中竟然无一人戳破,这种剧情,恐怕只有穿越剧才能解释吧!
我们同行这群人是不是有点太搞笑了?
反正我给自己是找好了理由了。我自己从前十几年就开始在研究标准化编程的问题,在S7-300的时候,就已经彻底离开了使用M和T,到用S7-1500和S7-1200做项目的时候,根本没需要用定时器T,所以自然发现不了。
这很正常。
而那些我的读者们,你们是为啥也没发现呢?
现在我们站在一个宗教信徒的立场,去仰视创世纪的上帝的方式,来思考给我们创造设计平台的西门子官方,假设那就是我们的上帝,我们来猜,他们为什么要在TIA中取消定时器T?
现在看,是他们认为我们不需要使用它了。他们认为新的计算机编程思想,架构,已经逐渐深入人心,人们已经不再需要和30年前一样,全靠用寄存器的方式来实现控制逻辑了。
就像小孩子已经长大了,在搬新家的时候,爸爸妈妈自然把学步车给收走了,不给用了。
但恐怕西门子的开发者们,也万万想不到的是,孩子们还离不开。
不想离开。