[?+]: Включение выхода по дате и времени.

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

[?+]: Включение выхода по дате и времени.

Post by Alex.var » Sat Sep 20, 2008 6:58 pm

Добрый день, подскажите пожалуйста кто знает как в 7ШАГЕ запрограмировать чтобы на выходе появлялся сигнал по дате и времени и чтобы это можно было менять с панели или Винсс.
Заранее благодарен.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Sat Sep 20, 2008 8:57 pm

В OB1 есть внутренний параметр OB1_DATE_TIME, который хранит дату и время запуска блока - иными словами, текущую дату/время. Проще всего к нему привязаться.

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Sun Sep 21, 2008 8:41 am

А можете ли выложить пример простой программы. Например на Q0.0 появляетс сигнал 25.09.2008 в 12.00 и 26.09.2008 в 13.00 выключается. Заранее благодарен.

sania
Site Admin
Posts: 1371
Joined: Sat Aug 13, 2005 6:15 am

Post by sania » Sun Sep 21, 2008 10:47 am

Code: Select all

      A(    
      L     LB    12                    //pv year
      L     DB1.DBB   12                //sp year
      ==I   
      )     
      A(    
      L     LB    13                    //pv month
      L     DB1.DBB   13                //sp month
      ==I   
      )     
      A(    
      L     LB    14                    //pv day
      L     DB1.DBB   14                //sp day
      ==I   
      )     
      A(    
      L     LB    15                    //pv hour
      L     DB1.DBB   15                //sp hour
      ==I   
      )     
      A(    
      L     LB    16                    //pv minute
      L     DB1.DBB   16                //sp minute
      ==I   
      ) 
      FP    M      0.0    
      S     Q      0.0
и по аналогии RESET
db1.dbw12-это DATE_TIME вводимое с панели для включения
этот кусок должен быть встроен в ОВ1

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Sun Sep 21, 2008 4:31 pm

Спасибо большое, Sania, буду разбираться. Последний вопрос а можно это изобразить в LAD или FBD, а то у меня с STL туговато. Если нет все равно спасибо буду пытаться, разобраться.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Sun Sep 21, 2008 4:53 pm

Переменная OB1_DATE_TIME имеет тип Date_And_Time, который представляет собой восемь байт:
0 год 1990..2089
1 месяц 01..12
2 день 1..31
3 часы 0..23
4 минуты 0..59
5 секунды 0..59
6 2 MSD мс 00..99
7 (4 MSB) LSD мс 0..9
7 (4 LSB) день недели 1..7 (1 = воскресенье)

Можно обратиться к любому байту переменной по адресу (стартовый адрес переменной 12.0):
LB12 - текущий год
LB13 - текущий месяц
и т. д.

ну а потом с этими адресами используй операторы сравнения и выполняй нужные действия при условии равенства

sania
Site Admin
Posts: 1371
Joined: Sat Aug 13, 2005 6:15 am

Post by sania » Sun Sep 21, 2008 5:53 pm

Alex.var wrote:можно это изобразить в LAD или FBD
нет,они не поддерживают операции с байтами,для понимания исправь букву B на W(байт на ворд),посмотри в ледере,потом верни взад

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Sun Sep 21, 2008 7:59 pm

Спасибо большое, Sania, сейчас немного понятнее. Завтра настрою контроллер буду пытаться програмить.

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Mon Sep 22, 2008 9:37 am

Спасибо, вроде бы разобрался уже вижу дату и время он-лайн. Еще вопрос что обозначает 11 перед годом (он-лайн) и какой адрес у дня недели.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Mon Sep 22, 2008 9:42 am

По-моему, все это написано в моем предыдущем сообщении...

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Mon Sep 22, 2008 10:43 am

Я конечно извиняюсь Но если беру:
LB12 - текущий год
LB13 - текущий месяц
LB14 - день 1..31
LB15 - часы 0..23
LB16 - минуты 0..59
LB17 - секунды 0..59
LB18 - мс 00..99


LB19 - А вот дальше не получается.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Mon Sep 22, 2008 11:07 am

В LB19 упакованы день недели и миллисекунды. Используй маску для выделения дня недели.

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Mon Sep 22, 2008 5:23 pm

Уважаемый ,Schtiel, можете пример показать как Использовать маску для выделения дня недели.

Schtiel
Site Admin
Posts: 1121
Joined: Wed Sep 06, 2006 12:03 pm
Location: CIS

Post by Schtiel » Mon Sep 22, 2008 6:24 pm

Вот пример на LAD:
ImageImage
В итоге в MW12 получаем текущий день недели. Сегодня понедельник, поэтому там 2:
ImageImage

Alex.var
Posts: 58
Joined: Sat Sep 20, 2008 5:53 pm
Location: America

Post by Alex.var » Mon Sep 22, 2008 7:13 pm

Спасибо огромное, Schtiel и sania за то что неуча просветили. Я думаю что по этой теме у меня вопросов больше нет. :D