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

ПЛК / Децентрализованная периферия
Ответить
Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

имеется цепочка формирующая короткий импульс поступающий на вход счетчика 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
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

не хотел бы и таймеры на сброс устанавливать, разве мультиэкземплярно, чтобы DB не плодить.
Supervision of erection

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

пришлось на SCL через SR реализовать.
Supervision of erection

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение mr_Frodo »

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

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

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

мне непонятен принцип формирования длительности импулься не стандартными методами.
по этому поводу я спрашивал
viewtopic.php?f=17&t=1052&start=40#p11077
Supervision of erection

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение mr_Frodo »

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

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

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

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

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


по коду, =#out остается "взведенным" до следующего цикла?
Supervision of erection

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение mr_Frodo »

Ka3ax писал(а):по коду, =#out остается "взведенным" до следующего цикла?
Верно.
В следующем цикле значения RLO от #in становится таким же, как и в ячейке #fp и программа понимает, что фронт прошёл, снимая результат #out. Результат #out трудно отследить в симуляторе из-за его кратковременности, но для этого можно применить "военную хитрость" - установить параллельно = #out оператор S на другую переменную, чисто для контроля.
наример:
A #inp
FP #fp
S #aux
= #out
Аналогична работа оператора FN, только на исчезновение сигнала.
Вот моя подпись...

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

а SR тригер приведенный выше на скриншоте, не на другом цикле обнуляется?
Supervision of erection

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

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

Сообщение mr_Frodo »

Разговор идёт о более простом решении, а вы про циклы...
неужели применить код из 7 строк , да ещё с путаной логикой интересней, чем из 3-х и с наглядной даже на STL.
Вот моя подпись...

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

stl уже нельзя, другой проект, сейчас scl.
и я не о циклах а о SR триггере, защелке.
мне некогда было придумывать, ответа долго не было, поэтому повторил но на scl.
позже выяснилось, что можно и по-другому.
сроки жмут, некогда уже красиво делать.
Supervision of erection

Аватара пользователя
Ka3ax
Специалист
Сообщения: 303
Зарегистрирован: 07 сен 2013, 10:09

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

Сообщение Ka3ax »

там не просто один тригер, вся логика управления импульсная, вся.
включаешь выключателб-импульс, выключаешь-импульс.
и так все цепи.
попробовать усовершенствовать, жизни не хватит всю программу перелопатить и взаимосвязи импульсов выяснить. конечно понятные части оптимально делаются, упрощаются, нагляднее реализуются.
другой стороны на fub тригер понятнее "смотрится" чем на scl
Supervision of erection

Ответить