光干活不挣钱是多么痛苦的事情啊.咳
楼主,我今天研究了一下,300PLC的定时器的时间是S5TIME的时间格式,(####)(.####.####.####).是16位寄存器.都是BCD码,最高的2位不用,后边的两位为时基,00为10ms,01为100ms,10为1s,11为10s.
这样的话,你可以用weinview的输入控件选择BCD码输入.如果时基你选10ms的话就比较简单. 最大定时时间为10ms*999=9.99s.如果你的时基要是其他的话,需要自己对数据处理一下,其实也简单,我举个例子,你用数字输入控件,输入1999.那么就是100ms*999, 输入2999就是1s*999,3999 就是 10s*999.
论坛如果说的太详细也不可能,你自己再研究一下.存储区域DB#.DBW, MW,LW,IW.QW都是可以的,但是一般都是用DB#.DBW#或则MW#.
其实也不要想得那么复杂,我先来讲一下S7-300的PLC时间的储存格式,储存格式一般分两种,一种是S5TIME格式,这种对于使用S7-300PLC的工程人员就再熟悉不过了,我就不多说了;另一种就是可以用,"WXYZ”这样的储存格式来储存,其中W表示时基,0时代表10MS,1时代表100MS,以此类推,XYZ表示时间,XYZ储存格式是BCD码来的,例如,我们要一个2秒的表达方式,我们可以用WXYZ的格式有3种表示方法,0200、1020、2002都可以。然后我说一下楼主问的问题,一般情况下S7-300保存数据的话,我们会用数据块,这时我们分别建立一个相同的数据块,一个全是WORD格式,一个全是S5TIME格式,屏幕上用BCD格式,字数1,时间一律用3位表示,存放在WORD格式的那个块,然后我们专门开个FC功能,转换成我们需要的,很简单,我们只需要用一个"字与"的指令,0FFF、1FFF、2FFF什么的,其实说白了就是把屏幕的BCD格式转换为WXYZ的格式,储存在S5TIME那个数据块中,所了那么多,不知道能不能理解,呵呵。