Последний раз редактировалось Евгений Кислов; 11.03.2016 в 15:26.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Ставил 2000 мс и 10000 мс
Последний раз редактировалось Евгений Кислов; 11.03.2016 в 15:37.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Перестает выполняться одна программа и при этом перестает выполняться задача, в которой эта программа находится. Происходит это на 501 или 502 цикле. Ссылку на программу сейчас скину
Как я понял в итоге после разбора программы - происходит зависание на выполнении функциональных блоков:
этого
либоКод:rtr_a1(CLK:= in1, Q=> ); b1:=rtr_a1.Q; rtr_a2(CLK:= in2, Q=> ); b2:=rtr_a2.Q; rtr_a3(CLK:= in3, Q=> ); b3:=rtr_a3.Q; rtr_a4(CLK:= in4, Q=> ); b4:=rtr_a4.Q; rtr_a5(CLK:= in5, Q=> ); b5:=rtr_a5.Q; rtr_a6(CLK:= in6, Q=> ); b6:=rtr_a6.Q; rtr_a7(CLK:= in7, Q=> ); b7:=rtr_a7.Q; rtr_a8(CLK:= in8, Q=> ); b8:=rtr_a8.Q; rtr_a9(CLK:= in9, Q=> ); b9:=rtr_a9.Q; rtr_a10(CLK:= in10, Q=> ); b10:=rtr_a10.Q; rtr_a11(CLK:= in11, Q=> ); b11:=rtr_a11.Q; rtr_a12(CLK:= in12, Q=> ); b12:=rtr_a12.Q; rtr_a13(CLK:= in13, Q=> ); b13:=rtr_a13.Q; rtr_a14(CLK:= in14, Q=> ); b14:=rtr_a14.Q; rtr_a15(CLK:= in15, Q=> ); b15:=rtr_a15.Q; rtr_a16(CLK:= in16, Q=> ); b16:=rtr_a16.Q; rtr_out (CLK:=(b1 OR b2 OR b3 OR b4 OR b5 OR b6 OR b7 OR b8 OR b9 OR b10 OR b11 OR b12 OR b13 OR b14 OR b15 OR b16), Q=>out);
Ранее периодически происходило исключение на первых строках этих блоков, в причине так и не разобрался. Вроде зависать не на чем. Закомментировав вызовы программ, где они используются, останов задач прекратился. Только не ясно почему перестало происходит Исключение - останов программы...Код://регистрация вкл/выкл события rtr_1(CLK:= in1, Q=> ); rtr_2(CLK:= in2, Q=> ); rtr_3(CLK:= in3, Q=> ); rtr_4(CLK:= in4, Q=> ); rtr_5(CLK:= in5, Q=> ); rtr_6(CLK:= in6, Q=> ); rtr_7(CLK:= in7, Q=> ); rtr_8(CLK:= in8, Q=> ); rtr_9(CLK:= in9, Q=> ); rtr_10(CLK:= in10, Q=> ); on_1:=rtr_1.Q; on_2:=rtr_2.Q; on_3:=rtr_3.Q; on_4:=rtr_4.Q; on_5:=rtr_5.Q; on_6:=rtr_6.Q; on_7:=rtr_7.Q; on_8:=rtr_8.Q; on_9:=rtr_9.Q; on_10:=rtr_10.Q; ftr_1(CLK:= in1, Q=> ); ftr_2(CLK:= in2, Q=> ); ftr_3(CLK:= in3, Q=> ); ftr_4(CLK:= in4, Q=> ); ftr_5(CLK:= in5, Q=> ); ftr_6(CLK:= in6, Q=> ); ftr_7(CLK:= in7, Q=> ); ftr_8(CLK:= in8, Q=> ); ftr_9(CLK:= in9, Q=> ); ftr_10(CLK:= in10, Q=> ); off_1:=ftr_1.Q; off_2:=ftr_2.Q; off_3:=ftr_3.Q; off_4:=ftr_4.Q; off_5:=ftr_5.Q; off_6:=ftr_6.Q; off_7:=ftr_7.Q; off_8:=ftr_8.Q; off_9:=ftr_9.Q; off_10:=ftr_10.Q; //упаковка в биты actions.0:=on_1; actions.1:=off_1; actions.2:=on_2; actions.3:=off_2; actions.4:=on_3; actions.5:=off_3; actions.6:=on_4; actions.7:=off_4; actions.8:=on_5; actions.9:=off_5; //выходные переменные IF rtr_1.Q OR ftr_1.Q OR rtr_2.Q OR ftr_2.Q OR rtr_3.Q OR ftr_3.Q OR rtr_4.Q OR ftr_4.Q OR rtr_5.Q OR ftr_5.Q OR rtr_6.Q OR ftr_6.Q OR rtr_7.Q OR ftr_7.Q OR rtr_8.Q OR ftr_8.Q OR rtr_9.Q OR ftr_9.Q OR rtr_10.Q OR ftr_10.Q THEN event:= actions; save:= TRUE; ELSE save:= FALSE; END_IF
Спасибо за ответ.
Да они не получают false, а зачем (там жеш step дальше идет)? мне же нужно чтобы они работали им TRUE даю, если еще write можно после выполнения сделать xExecute:= false, то read точно должен быть true пока не получит ответ, а ответ я не получаю.
Строку изменил с 'AT' на 'ATZ$R' как я это увидел у другом проекте.
Может быть проблема в том, что я использую:
write:COM.Write;
read:COM.Read;
а нужно SysCom.* ???
UPD:
Разобрался, заработало.
И хочу сказать: это пи*ц какой-то этот FAQ на овене, и эта документация на ПЛК323, везде пишут по разному, и везде 1/10 пользы. Приходиться по форуму 50 топиков просмотреть чтобы понять что к чему и найти хоть какой-то рабочий проект. Всем кто отвечал спасибо.
Последний раз редактировалось ntro123; 11.03.2016 в 19:33.
подскажите как в проект засунуть экспортный файл SPK_PCV.export.
Выделяете кликом Application, вверху выбираете меню Проект, в нем выбираете команду Импорт и указываете путь к файлу.
Безымянный.png
Последний раз редактировалось Евгений Кислов; 11.03.2016 в 20:59.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Это единственный способ передавать данные через модем?
1) Можно как-то просто получить дескриптор на открытое AT командами соединение с сервером через модем и уже передавать данные используя сокеты?6.6.3 Обмен данными с ТСP/IP сервером по GPRS
...
AT+CIPSEND <данные> <0x0A> – передача данных по установленному соединению.
...
цитата из офф. документации к ПЛК 323
2) ИЛИ можно ли получить указатель/дескриптор на модем, открыть соединение с сервером по средствам сокетов и передавать данные с помощью них? Или единственный вариант это AT команда для передачи данных?
Последний раз редактировалось ntro123; 12.03.2016 в 16:13.
Как сделать так чтобы код (функция) выполнялся только один раз при запуске? Язык ST Нужно проверить значения переменных, задать начальные значения и т.п.