您现在的位置是:首页 > PLC技术 > PLC技术

PLC的时间程序功能

来源:艾特贸易2018-04-20

简介每个 SIMATIC CPU 都有一个时钟,可以设置也可以通过 STEP 7 或系统功能进行扫描。时间在用户程序中以 DATE_AND_TIME 的格式表示,包括日期、时间和星期。 版本 3 和更高版本的 CPU 也有时间

    每个SIMATIC CPU都有一个时钟,可以设置也可以通过STEP 7或系统功能进行扫描。时间在用户程序中以DATE_AND_TIME的格式表示,包括日期、时间和星期。

    版本3和更高版本的CPU也有时间状态。还可以根据时区的不同和冬令/夏令来设置。

    下面的系统功能可以用作访问CPU的时钟功能。

    SFC 0SET_CLK,设置日期和时间。

    SFC 1READ_CLK,读日期和时间。

    SFC 48SNC_RTCB,同步从站时钟。

    SFC 100SET_CLKS,设置时间、日期和时钟状态。

    系统功能参数列于表20-4中。

    20-4    用于CPU时钟的SFC参数

用于CPU时钟的SFC参数

    1.时间的设置和读取

    调用SFC 0SET_CLKSFC 100 SET_CLKS,用MODE=B#16#01B#16#03设置PDT参数定义的时钟值。SFC 0 SET_CLK通过夏令/冬令时间ID标签设置CPU的冬令时间。通过SFC 100 SET_CLKSSUMMER(夏令)参数来设定冬令(0)还是夏令(1")

   SFC 1 READ_CLK读出当前时间,并存放在CDT参数里。以DATE_AND_TIME的形式来设置和读取时间,如日期和时间。

    2.模块时间和当地时间

    CPU中的时间是模块时间,对于由CPU实现的一些过程定时控制具有决定性意义,如运行时间表、日历中断的启动或者在诊断缓冲区和OB启动信息中输入时间标志等。可以通过用于CPU时钟的系统功能设置和读取模块时间。

    恰当设计的CPU会额外保存一个“时间状态”。这包含一个修正值,当加到模块时间时产生一个局部时间。修正值设定在30分钟的时间间隔里,可以是负数(SFC100 SET_CLKSCORR参数)

    当地时间可以用来显示时区。

    3.时间状态

    在用STEP 7SFC 100SET_CLKS设置CPU参数时,设定时间状态。通过系统状态表可以用SFC 51 RDSYSST来读取日期和时间状态(INDEX W#16#0008SSL_ID=W#16#0132)。状态变量包括:

    30分钟的时间间隔的修正值(第2位到第6位)

    ●修正值符号(第7位)

    ●夏令/冬令时间ID(第14位)

    ●通知(announcement)时刻(第15位)

    夏令/冬令时间ID示出了从模块时间和修正时间算出来的当地时间是夏令(1)还是冬令(0)

    如果通知时刻位状态为“1”,从夏令到冬令的转换会在下次时刻变化的时候执行。

    为了在用户程序里控制定时过程,可以通过时间状态信息,从模块时间里产生一个当地时间。

    在用户程序里,可加载块用来处理当地时间的夏令/冬令时间转换,特别是日历中断的启动要依靠当地时间(参阅“可加载时间块”)。

    4.时间同步

    在自动化操作网络里有多个子网交换数据的SIMATIC站,其中所有CPU时钟都可以同步。可以设置一个CPU的时钟为“主时钟”,并设定执行同步的时间段。可以把被同步的时钟设为“从时钟”。

    同步可以在一个S7站内部通过通信总线(底板总线)或者在站之间通过MPI总线进行。这是在参数设置好的时间间隔里自动完成的。如果用SFC 0 SET_CLK或者SFC 100 SET_CLKS设置了一个主时钟,那么子网中的其他时钟就自动与该时钟值同步。

    通过调用主时钟的SFC48 SNC_RTCB,可以使所有的从时钟独立于自动时间间隔而进行时钟同步。

    如果主时钟没有日历状态,从时钟会以冬令时间同步。修正量是零,这样当地时间就与模块时间一致。

    如果主时钟带日历状态,除了时间外,将传送完整的时间状态。这样,在时间网络中的全部的CPU就有了同样的当地时间(同样的时区)。

    5.用STEP 7设置时间

    在设置CPU的参数时,可以在属性窗口的“Diagnostics/clock”选项卡里设置同步模式(主时钟、从时钟或者都不是)和同步时间间隔。修正值是用来使时钟准确的。

    如果编程设备连接到CPU,可以通过STEP 7来设置时间和时间状态。选择PLC-Diagnostics/settingsSet time ofday即可。在下一级对话框,可以把当地时间设成与模块时间不同,也可以设定夏令/冬令时间。时间状态在“Status”(状态)容器里。

    6.可加载时间块

    StandardLibrary(标准库)的Miscellaneous Blocks(其他功能块)程序里有可加载块,用来在用户程序里选择夏令/冬令以及处理当地时间。

    FC 60LOG_TIME,决定当地时间

    FC 61 BT_LT,把模块时间转变为当地时间

    FC 62 LT_BT,变当地时间为模块时间

    FC 63S_LTINT,为当地时间设定日历中断

    FB 60 SET_SW,选择夏令/冬令时间

    FB 61SET_SW_S,用时间状态来选择夏令/冬令时间

    UDT 60WS_RULES,夏令/冬令时间选择的规则(如时间转换)

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务