Вопросы по программированию ПЛК в ISPSoft

Консультации специалистов.
Сайт:
https://www.delta-electronics.info
https://www.deltronic.ru
Матрикс Форум:
https://www.matrix-forum.ru
Alexander_I
Сообщения: 955
Зарегистрирован: 31 окт 2011, 15:18

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Alexander_I »

Да есть эти инструкции и в WPLsoft (если версия не древняя), если правильно указали тип контроллера в проекте (ES2), и в User Manual тоже есть, если, конечно, руководство для контроллеров ES2 и прочих обновленных.

nnaf
Сообщения: 18
Зарегистрирован: 31 июл 2012, 13:54

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение nnaf »

С SFC разобрался. Все просто. Как всегда, нужно было внимательнее help читать. Вопросы сняты.

Natrii
Сообщения: 28
Зарегистрирован: 02 май 2013, 08:57

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Natrii »

Здравствуйте, подскажите пожалуйста, в программе я использовала инструкцию mc (mcr). Синтаксически код написан правильно, логически тоже все верно, тогда почему при компиляции ISPSoft выдает ошибку "Error 1001: Linking error"?
Что причина в данной инструкции абсолютна уверена, так как создала новую прогу с этой инструкцией и просто мегающей лампой, пока инструкция присутсвует, компилятор выдает эту ошибку, удаляю - все идет. Может кто знает причину?
P.S. Когда искала ответ на свой вопрос наталкивалась вот на что: человек на форуме спрашивал и ему прислали ответ:
"При компиляции программы в пакете ISPSoft появляется ошибка 1001 "linking error". Это ошибка появляется при использовании инструкции WSUM и её производных. Если её убираю - компилирует. Это ошибка обозначает, что используемые переменные неверного формата (word, bool..). По мануалам формат данных верный. Контролер DVP ES2.
Что делать?
Ответ: К сожалению, данная инструкция в ISPSoft пока не работает."

Это значит, что данная инструкция mc (mcr), тоже пока не работает? А в WPLSofte она пойдет?
Заранее спасибо.

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Здравтствуйте, еще раз!

Занимаюсь сейчас проектом на ISPSoft и обнаружил одну непонятную для меня особенность использования функциональных блоков. Расскажу подробней.

Сделал функциональный блок, очень простой. Он выставляет числовые значения в соответствующих регистрах, если сработали соответствующие контакты. Но, обнаружилось, что числа выставляются даже тогда, когда контакты разомкнуты. Числа не выставляются нигде кроме функионального блока. Как такое может быть? Ведь, если контакт разомкнут, то следующая за ним инструкция выполняться не должна ни при каких условиях! Или в функциональных блоках правила другие? Или это все проблемы старой версии 1.03.

Вот, во вложенной картинке есть пример. Контакты DEV2 и DEV3 разомкнуты. До запуска функционального блока числа в регистрах NUM_2 и NUM_3 были обнулены.

И еще вопрос, вдогонку. В новой версии ISPSoft 2.03, при запуске симулятора, мне выдается предупреждение о том, что у меня в проекте задан контроллер типа ES2, а симулируется тип SV. В чем может выражаться это различие в результатах симуляции? Насколько я понимаю, в логике изменений быть не должно?
Вложения
voprosfb.png
voprosfb.png (107.04 КБ) 14997 просмотров

Ryzhij
Сообщения: 1026
Зарегистрирован: 26 авг 2012, 19:25
Откуда: Россия Рязань

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Ryzhij »

AlexB писал(а):Сделал функциональный блок, очень простой. Он выставляет числовые значения в соответствующих регистрах, если сработали соответствующие контакты. Но, обнаружилось, что числа выставляются даже тогда, когда контакты разомкнуты. Числа не выставляются нигде кроме функионального блока. Как такое может быть? Ведь, если контакт разомкнут, то следующая за ним инструкция выполняться не должна ни при каких условиях! Или в функциональных блоках правила другие? Или это все проблемы старой версии 1.03.

Вот, во вложенной картинке есть пример. Контакты DEV2 и DEV3 разомкнуты. До запуска функционального блока числа в регистрах NUM_2 и NUM_3 были обнулены.
А с чего бы изменяться содержимому в регистрах?
После однократного исполнения фукционального блока разве программа где-то ещё записывает в эти регистры иное значение?
Что положили, то там и лежит, пока не перезапишите.
__________________________
Помощь - понятие растяжимое, всяк трактует его в меру своего эгоизма...

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

После однократного исполнения фукционального блока разве программа где-то ещё записывает в эти регистры иное значение?
В том то и проблема, что в регистры значение записывается только в этом функциональном блоке и нигде более. Перед запуском функционального блока регистры обнуляются каждый раз. Я отключал строку (Network) с ФБ и убеждался, что обнуление работает. Поэтому я могу уверенно говорить, что регистры заполняются именно в функциональном блоке. Причем, достаточно замкнуть контакт на соответствующем входе блока, чтобы значение записалось в регистр. После размыкания контакта и последующего обнуления, значение в регистре сохраняется. В той картинке, что я приложил к предыдущему сообщению видно, что контакт DEV2 (входная переменная блока) разомкнут. Именно он в блоке разрешает запись числа 2 в регистр NUM_2.

То есть логика такая:

1) обнуляются регистры
2) после обнуления запускается ФБ
3) при замыкании входного контакта заполняется соответствующий регистр
4) при размыкании контакта он не меняется (как и должно быть)
5) а далее, так как программа циклична, мы возвращаемся к шагу 1, то есть к обнулению. И на этом шаге регистр по прежнему сохраняет свое значение. Напомню, без функционального блока обнуление прекрасно работает, так что проблема, по всей видимости, не в нем.

Вот я добавил картинку для понимания, удалив некоторые из инструкций обнуления, чтобы не растягивать картинку. Как видно, в первой сети регистры должны обнуляться. Во второй располоден функциональный блок, при этом он тоже запущен, тем же флагом, что и обнуление. Контакты на входе блока разомкнуты, на выходе по прежнему заполненные первые два регистра. Внутренности блока есть в предыдущем моем сообщении.
Вложения
vopros22.png
vopros22.png (90.17 КБ) 14988 просмотров

Alexander_I
Сообщения: 955
Зарегистрирован: 31 окт 2011, 15:18

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение Alexander_I »

Не понял юмора. А с какой стати они должны быть обнулены, если после обнуления сразу идет присвоение?

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Ура! Я понял свою ошибку. Инструкции в функциональном блоке действительно не выполнялись, при разомкнутых контктах, как и должно быть. Но регистры все равно заполнялись, потому что выходные переменные функционального блока сохраняли значение. Тое сть:

1) регистры обнуляются
2) в зависимости от состояния контактов на входе ФБ, заполняются выходные регистры ФБ
3) Значения выходных регистров ФБ передаются в те регистры, что ранее были обнулены. Так как выходные регистры (при разомкнутых контактах) не были перезаписаны, то в них и сохранялось значение, которое записывалось в обнуленные регистры.

AlexB
Сообщения: 7
Зарегистрирован: 01 фев 2012, 16:34

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение AlexB »

Не понял юмора. А с какой стати они должны быть обнулены, если после обнуления сразу идет присвоение?
Имелось в виду что присвоения и не должно быть, так как контакты для инструкций присвоения разомкнуты. Оказалось что функциональный блок сохраняет значение своих выходов. При разомкнутых контактах ФБ не записывает в выхорд новое значение, зато оставляет там старое. И оно записывается в регистр, который я присоединил к выходу, причем этот регистр ранее был обнулен. Так что, оказалось, что достаточно сделать не выходные регистры, а регистры типа IN_OUT. И проблема решилась. Теперь для незадействованных выходов значение НЕ СОХРАНЯЕТСЯ.

SergeyKochetov
Сообщения: 14
Зарегистрирован: 13 дек 2014, 15:22

Re: Вопросы по программированию ПЛК в ISPSoft

Сообщение SergeyKochetov »

Здравствуйте! Кто может написать программу для преобразователя частоты, чтобы он управлял лифтом?

Ответить