Код из S5 в TIA v15 без меркеров

ПЛК / Децентрализованная периферия

Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 14 июл 2018, 05:51

имеется цепочка формирующая короткий импульс поступающий на вход счетчика SET и сбрасывающий его перед счетом.
ищу решение без применения меркеров. (Например, счетчик в TIA (контролер 1500) заменен сейчас накапливающим таймером, меркеры не применяются.)


счетчик по приходу -M100.6 сбрасывается коротким импульсом -M180.0 что формируется цепочкой в NW1.
и счетчик начинает считать приходящие минутные импульсы на входе IMP, по приходу -M1444.4 останавливается не сбрасываясь,
когда -M1444.4 устанавливается вновь в ноль, продолжает считать.

кому интересно, вот код счетчика
Код: Выделить всё
NAME:   ZAEHLER2
BEZ :   E-DB   B
BEZ :   E-DW   EW
BEZ :   COUN   EBI
BEZ :   SET   EBI
BEZ :   A-DB   B
BEZ :   A-DW   AW
BEZ :   AUS   ABI
BEZ :   NULL   ABI
BEZ :   IMP   EBI
BEZ :   HALT   EBI

   AWL   
   B   =E-DB
   L   =E-DW
   T   MW 204   ;ZEIT SOLLWERT
   L   KH 0000   ;WENN SOLLWERT = 0
   !=F      ;DANN
   =   =NULL   ;SETZE AUSGANG "NULL"
      
   B   =A-DB
   L   =A-DW
   T   MW 202   ;ZEIT ISTWERT
      
   L   MW 202
   L   MW 204   ;WENN ISTWERT GROESSER
   <F      ;SOLLWERT, DANN
   SPB   =M001   ;ISTWERT=SOLLWERT
   L   MW 204
   T   MW 202
M001:      
   UN   =SET    ;WENN SETZEINGANG
   SPB   =M002   ;DANN LADE ZAEHLER
   L   KH 0000   ;MIT NULL
   T   MW 202
M002:      
   UN   =IMP    ;IMPULSE (SEC., MIN., STD.)
   ON   =COUN   ;UND ZAEHLEINGANG
   SPB   =M003
   L   MW 202   ;ISTWERT >= SOLLWERT
   L   MW 204   ;(ZAEHLER ABGELAUFEN)
   >=F   
   O   =HALT   ;ZAEHLER ANHALTEN
   SPB   =M003
      
   L   MW 202   ;ZAEHLER INCREMENTIEREN
   L   KH 0001
   +F   
   T   MW 202
M003:      
   L   MW 202   ;WENN ZAEHLER NOCH NICHT
   L   MW 204   ;ABGELAUFEN UND ZAEHLEINGANG
   <F      ;DANN SETZE AUSGANG=1
   U   =COUN
   =   =AUS    ;SET OUTPUT
      
   L   MW 202   ;ISTWERT
   B   =A-DB   ;IN DB SPEICHERN
   T   =A-DW
   BE   
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 14 июл 2018, 06:44

не хотел бы и таймеры на сброс устанавливать, разве мультиэкземплярно, чтобы DB не плодить.
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 05 авг 2018, 16:04

пришлось на SCL через SR реализовать.
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение mr_Frodo » 05 авг 2018, 20:45

Не совсем понятно, почему нельзя импульс сделать через фронт-пульс?
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 446
Зарегистрирован: 22 июл 2016, 20:38

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 05 авг 2018, 22:09

почему нельзя импульс сделать через фронт-пульс?

знал бы сделал, а так не понятно о чем речь.

мне непонятен принцип формирования длительности импулься не стандартными методами.
по этому поводу я спрашивал
viewtopic.php?f=17&t=1052&start=40#p11077
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение mr_Frodo » 06 авг 2018, 08:09

Странно, что не знаете один из часто используемых операторов...
на вашем любимом STL это выглядит как

A #inp //входная булева переменная, у которой обнаруживается фронт
FP #fp //оператор, обнаруживающий фронт путём сравнения состояния #inp и #fp
= #out // выходной импульс, длительностью 1 цикл программы.

Одно главное замечание. Если данный код используется в блоке типа FC (функция) или FB(функц. блок), то переменная #fp не должна быть в области временных переменных, т.к. временные переменные каждый новый цикл переписываются новыми значениями и не хранятся в оперативной памяти. Соответственно значение #fp будет постоянно сбрасываться в false независимо от предыдущего цикла.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 446
Зарегистрирован: 22 июл 2016, 20:38

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 06 авг 2018, 19:52

отчего, определение фронтов FP FN мне известно, а понятие фронт-импульс нет.

A #inp //входная булева переменная, у которой обнаруживается фронт
FP #fp //оператор, обнаруживающий фронт путём сравнения состояния #inp и #fp
= #out // выходной импульс, длительностью 1 цикл программы.


а цикла всегда хватит? если он и наносекунды?
отчего я ранееспрашивал, реализация на меркерах была для S5, а там цикл миллисекунды.


по коду, =#out остается "взведенным" до следующего цикла?
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение mr_Frodo » 06 авг 2018, 20:08

Ka3ax писал(а):по коду, =#out остается "взведенным" до следующего цикла?

Верно.
В следующем цикле значения RLO от #in становится таким же, как и в ячейке #fp и программа понимает, что фронт прошёл, снимая результат #out. Результат #out трудно отследить в симуляторе из-за его кратковременности, но для этого можно применить "военную хитрость" - установить параллельно = #out оператор S на другую переменную, чисто для контроля.
наример:
A #inp
FP #fp
S #aux
= #out
Аналогична работа оператора FN, только на исчезновение сигнала.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 446
Зарегистрирован: 22 июл 2016, 20:38

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 07 авг 2018, 02:09

а SR тригер приведенный выше на скриншоте, не на другом цикле обнуляется?
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение mr_Frodo » 07 авг 2018, 12:55

Разговор идёт о более простом решении, а вы про циклы...
неужели применить код из 7 строк , да ещё с путаной логикой интересней, чем из 3-х и с наглядной даже на STL.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Специалист
 
Сообщения: 446
Зарегистрирован: 22 июл 2016, 20:38

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 07 авг 2018, 19:16

stl уже нельзя, другой проект, сейчас scl.
и я не о циклах а о SR триггере, защелке.
мне некогда было придумывать, ответа долго не было, поэтому повторил но на scl.
позже выяснилось, что можно и по-другому.
сроки жмут, некогда уже красиво делать.
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09

Re: Код из S5 в TIA v15 без меркеров

Сообщение Ka3ax » 07 авг 2018, 19:18

там не просто один тригер, вся логика управления импульсная, вся.
включаешь выключателб-импульс, выключаешь-импульс.
и так все цепи.
попробовать усовершенствовать, жизни не хватит всю программу перелопатить и взаимосвязи импульсов выяснить. конечно понятные части оптимально делаются, упрощаются, нагляднее реализуются.
другой стороны на fub тригер понятнее "смотрится" чем на scl
Supervision of erection
Аватара пользователя
Ka3ax
Специалист
 
Сообщения: 283
Зарегистрирован: 07 сен 2013, 10:09


Вернуться в LOGO! / S7-200 / S7-1200 / S7-300/ S7-400 / S7-1500 / ET200

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron