скрин:Вложение 5706
проект: Вложение 5707
И что означает сообщение "1PLC STARTED"
Где можно смотерть расшифровку системных сообщений и ошибок?
скрин:Вложение 5706
проект: Вложение 5707
И что означает сообщение "1PLC STARTED"
Где можно смотерть расшифровку системных сообщений и ошибок?
Включение ПЛК (но не запуск программы).что означает сообщение "1PLC STARTED"
Ошибок в конфигурации у вас я не нашёл.
Доброго всем суток времени.
Вот хотел поинтересоваться в правильном ли я направлении двигаюсь. дабы изучать ПЛК стал только пару недель назад. В электротехнике не шарю, скажу сразу =) но общее представление имею. Изучил основу CoDeSys (но блоки пока не все разобрал, только основные)
На новой работе дали задание изучить область Программируемых логических контроллеров для внедрения в Автоматическую линию контактной сварки. ПЛК будет выполнять роль РКС (регулятор контактной сварки).
Приглянулся нам ОВЕН ПЛК160
Программировать будем в CoDeSys v2.3.
Использую пока FBD, дабы более наглядный язык для новичка незнающего электротехнику
Таргет-файл использую 3S CoDeSes SP RTE с "виртуальным устройством ПЛК"(если можно так сказать, другими словами незнаю как назвать) OEMs:CoDeSys SP RTE Realtime Runtime System For Windows NT/2000/XP, т.к. для Таргет-файла PLC160 "виртуального ПЛК-симулятора" не нашел.
Итог:
•ПЛК (симулятор) - OEM:CoDeSys SP RTE Realtime Runtime System For Windows NT/2000/XP
•Среда - CoDeSys v2.3.
•Язык - FBD
•Таргет-файл - 3S CoDeSes SP RTE
Набросал такую вот программку для подачи сигнала с одного входа "VarBOOL1" на 4 выхода "VarQ1,VarQ2,VarQ3,VarQ4" поочередно ("беглый огонь"), т.е. после подачи сигнала (TRUE) на вход на каждый выход подается секундный импульс поочередно (сначала загарается/гаснет VarQ1 на 1 сек, потом VarQ2 на 1 сек и т.д.) и все это заключено в бесконечный цикл (VarQ4 := VarBOOL1). Цикл тут для наглядности примера, в реале удалю. Все работает как часы.
2 вопроса:
•Будет ли это работать именно так как задумано (с одного входа на 4 выхода) при подключении ОВЕН ПЛК 160, конечно используя таргет-файл PLC160?
•Существуют ли "виртуальные ПЛК-симуляторы" различных моделей (например ПЛК 160) или они существенно ни чем не отличаются от предложенного 3S CoDeSes SP RTE поэтому и не были созданы?
если вам "симулятор" нужен только для отладки программы, то ставьте таргет для плк, а в кодесисе "онлайн-режим эмуляции"
Скорее всего будет, но я бы не смог спокойно спать, увидев подобный код на объекте, т.к. вы полагаетесь на то, что таймеры работают идеально точно и остаются синхронизированными друг с другом. На всякий случай я бы сделал по крайней мере так: http://images.devs-on.net/Image/pzmy...ysUntitled.pngБудет ли это работать именно так как задумано (с одного входа на 4 выхода) при подключении ОВЕН ПЛК 160, конечно используя таргет-файл PLC160?
И на ST, как правило, лаконичнее получается:Так что рекомендую учить именно его.Код:i := TIME_TO_DWORD(TIME()) / 1000 MOD 4; L1 := i = 0; L2 := i = 1; L3 := i = 2; L4 := i = 3;
oops Забыл про разрешающий вход.
А так нагляднее
Попробуйте только L3 задержать на 3с
<pre class="alt2" style="margin:0px; padding:6px; border:1px inset; width:640px; height:98px; overflow:auto"><div dir="ltr" style="text-align:left;">i := TIME_TO_DWORD(TIME()) / 1000 MOD 4;
L1 := i = 0;
L2 := i = 1;
L3 := i = 2;
L4 := i = 3;</div></pre>
Подскажите пожалуйста, как работает TIME_TO_DWORD(TIME())?
Какую переменную получает DIV от TIME_TO_DWORD(TIME()) в варианте с FBD?
Справочник CoDeSys дает не полное описание "TIME_TO/TIME_OF_DAY преобразования"
В данном примере хватит на сколько угодно, т.к. переполнение идёт через кратную четырём величину.хватит примерно на 49 суток
А по поводу 2-го вопроса:
•Какую переменную получает DIV от TIME_TO_DWORD(TIME()) в варианте с FBD конкретно в данном случае? Чтобы до конца понять.
В этом примере:
i := TIME_TO_DWORD(TIME()) / 1000 MOD 4;
(*1000 должна же делиться на конкретную переменную*)
Простите конешно если задаю глупые воросы, но спросить не у кого