помогите разобратся....
есть несколько груп однотипных механизмов, которые при опредиленных условиях работают одинаково...
...в связи с этим я создал свои функции для этих груп с нужными входами и выходами...
...все работает должным образом если в данный момент вызывается работа одного механизма....
...но начинаются чудеса, если нужно запустить два и более механизмов одной групы.... (тоесть вызывается 2 раза подряд одна и та же функция но с РАЗНЫМИ входами и выходами)...
PS:...используется 315-2DP...
...пример...
...я не совсем понял как правильно выкладовать листинги програм:oops: ....
....вот что получилось:
это основная функция:
A #AVT_HAND
A #ind_sensor2
A #zasyv_close
= #temp2
A #temp2
A #discharge_sw
AN #discharge_complete
S #discharge_working
A #discharge_working
AN T 2
= L 1.0
A L 1.0
L S5T#5S
SD T 1
A L 1.0
A T 1
L S5T#10S
SD T 2
A #discharge_working
AN #zasyv_open
AN T 1
O #aux_to_opn
= #to_open
O T 1
O
AN T 3
A #discharge_end
O
AN #AVT_HAND
A #vibrator_bt
= #vibrator_ON
//close zasyv after discharging
A #zasyv_open
R #discharge_working
S #discharge_end
A #discharge_end
L S5T#10S
SD T 3
A T 3
A #discharge_end
O #aux_to_cls
= #to_close
//clear all timers
A #discharge_end
FN #temp1
R T 1
R T 2
R T 3
R #discharge_working
S #discharge_complete
A #zasyv_close
R #discharge_end
//********Hand mode************
AN #AVT_HAND
A #open_bt
= #aux_to_opn
AN #AVT_HAND
A #close_bt
= #aux_to_cls
//****************************
а вот так она вызывается в програме:
// CALL "Discharge Wagon"
AVT_HAND :=M13.1
discharge_sw :=I126.0
vibrator_bt :="exchange with WinCC".motor._9M_V9_start_stop_bt
open_bt :="exchange with WinCC".motor._17M_D1_open_bt
close_bt :="exchange with WinCC".motor._17M_D1_close_bt
zasyv_open :=I8.6
zasyv_close :=I8.7
ind_sensor2 :=I8.1
to_open :=Q5.5
to_close :=Q5.6
vibrator_ON :=Q5.0
discharge_complete:=M13.2
в даной ситуации вызывается блок FC....пробовал создать свой FB с соответствующим ему DB.....результат одинаковый:
если вызывать функцию один раз, все работает нормально, но если вызвать второй раз подряд, то включение механизмов непрогнозируемое....
[?]: использование собственных функций в STEP7....
-
- Posts: 29
- Joined: Fri Sep 22, 2006 5:17 pm
- Location: Ukraine
-
- Posts: 22
- Joined: Fri Jan 12, 2007 2:45 pm
- Location: Kazakhstan
С таймерами это точно ты маху дал, да и бойся временных переменных, у них есть такая особенность которой нет скажем у меркеров ,если ты не сбросил временную переменную при следующем обращении к функции или даже первый раз если надеялся, что она нулевая -то будешь сильно удевлен ,что она принимает случайные значения.