Время на прочтение
9 мин
Количество просмотров 5.2K
Промышленный логический контроллер (ПЛК) — это тот же компьютер, но попроще. В нем есть все или почти все, что есть в любом ПК, но только, может, в меньшем объеме или не такой производительности. Но зато он может работать там, где обычный компьютер неприменим. У ПЛК есть то, что делает работу с ним проще при управлении оборудованием. Например, наличие «на борту» каналов ввода/вывода дискретных логических сигналов. Его программирование специфично. Выбор языков программирования достаточно ограничен, по большому счету их всего-то пять, и определяется стандартом МЭК 61131-3 [1]. И этого, как убеждает практика, по большому счету вполне достаточно.
Выбор ПЛК фирмы DELTA, кроме наличия собственной IDE, предоставляет доступ к широкому перечню периферийного оборудования. Фирменное ПО, как минимум, удобнее тем, что не требует особой настройки и «в один клик» работает на всей линейке технических средств фирмы. Минусы могут проявиться в отставании от передовых тенденций программирования. Но для ПЛК это не самая большая проблема, т.к. языки, определяемые стандартом, достаточно консервативны, а их настройка под разные типы ПЛК, как правило, не так уж сложна.
Можно даже утверждать, что тип ПЛК достаточно условен, т.к. программирование при наличии промышленного стандарта для них фактически неотличимо (различие в IDE пока не рассматриваем). По крайней мере, сам стандарт на это настраивает. Нам же далее будет важнее реализация определенной идеи. И если уж, как мы увидим, с этим справится столь элементарный язык программирования, как язык релейно-контактных диаграмм, то это будет вполне по силам и любому другому языку программирования для ПЛК. И уж тем более по плечу почти любому из известных языков для ПК.
Краткое введение в IDE
Установка IDE фирмы DELTA ISPSoft не требует от программиста каких-либо усилий. Установив ее, выберем из всего множества [стандартных] языков язык релейно-контактных схем (LD) и функциональных блоков (FB). На рис. 1 приведен пример проекта в среде ISPSoft.
В рамках программного проекта IDE код ПЛК разбивается на программные модули – POU (Program Organization Units), которые могут быть трех типов.
-
Программа – PROG (в IDE модуль имеет пометку PRG).
-
Функциональный блок — FB.
-
Функция — FC.
Дерево проекта содержит типовые узлы, среди которых Программы и Функциональные блоки для нас представляют наибольший интерес. Узел Программы содержит исполняемые модули типа PRG (тип программного модуля и язык, на котором он реализован, указаны правее имени модуля в дереве проекта). Программные модули узла Программы содержат исполняемый программный код и запускаются последовательно сверху вниз. Есть несколько режимов работы, на которые можно настроить их работу. Это циклическое исполнение модуля, запуск его по времени, и по прерыванию.
Каждый из программных модулей разбивается на Цепи или Командные строки (Network), где каждая строка представляют код на языке LD. Он включает и программный вызов функциональных блоков на языке FB. Цепи исполняются сверху вниз, а код в пределах цепи – слева направо. И эта та специфика, которая кардинально отличает работу «программной схемы» от аналогичной по виду электронной схемы, элементы которой работают параллельно. И наша задача эту специфику, если не устранить, то хотя бы в чем-то смягчить.
Описанная выше структурная организация программ ПЛК, как и сам язык программирования LD, будут непривычны для программиста, знакомого с обычными языками программирования. Хотя на самом деле принципиальной разницы между ними нет. Особенно с учетом описанной специфики работы программных модулей и кода внутри них. Ведь, и там и там речь идет фактически об обычном последовательном программировании лишь с разной формой, в общем-то, типичных операторов. А если учесть, что язык LD включает операторы типа пересылки данных, сравнения, вызова функциональных блоков и т.п., то такая связь становится еще очевиднее.
Однако, если окунуться в историю создания и развития ПЛК, то их языки программирования изначально были рассчитаны на технических специалистов, далеких от программирования. Другими словами, специалист, который знает, что такое реле, должен был уметь программировать, используя понятные ему вещи. И здесь таится тот когнитивный диссонанс, преследующий программиста под ПЛК слабо разбирающегося в программировании, но прекрасно понимающего работу электронных схем. Поэтому надо понимать то удивление или непонимание, которое может у него возникнуть при сравнении результатов работы программы для ПЛК и аналогичной ей электронной схемы (предположим, что в идеале и то и другое состоит из одних только реле).
Причина отмеченного выше противоречия достаточно очевидна: компоненты программы ПЛК работают последовательно, а компоненты электронной схемы – параллельно. Можно ли устранить эту разницу и, если можно, то как? Ответ следующий: пусть не полностью, но можно. И поможет нам в реализации этого автоматная модель программ и технология автоматного программирования (теоретическое обоснование его представлено в предыдущей моей статье [3]).
Теория – это, конечно, правильно и хорошо, но вопрос, как ее реализовать, используя достаточно скромные возможности [последовательных] языков программирования для ПЛК? И поскольку «лучше раз увидеть, чем сто раз услышать» рассмотрим для этого программную реализацию RS-триггера на ПЛК. Его модель, как и автоматные модели отдельного элемента И-НЕ и всего триггера, приведены в упомянутой выше статье.
Реализация RS-триггера
Пример проекта реализации модели RS-триггера приведен на рис. 2. Он содержит три программных модуля. Это два модуля типа PRG – RS_триггер и CopyStates и один типа FB – И-НЕ.
В модуле RS_триггер первые две цепи просто инвертируют два установочных входных сигнала триггера. Инвертирование необходимо, чтобы в исходном состоянии они были в единичном состоянии (кнопки, имитирующие соответствующие сигналы, отжаты). Так триггер фиксируется в неком установившемся состоянии и при этом не нужно будет держать кнопки, имитирующие сигналы, в нажатом состоянии. Переменные bX1 и bX2 будут внутренними локальными переменными, зависящими от состояния внешних входных сигналов ПЛК, соответственно сигналов от кнопок X1 и X2.
На рис.3. приведена реализация программного модуля CopyStates. Его функция – на каждом цикле работы ПЛК копировать массив слов с именем awStates в массив с именем awStates. Эти массивы содержат сопоставленные друг другу теневые и текущие состояния программных автоматов. Каждому автомату соответствует один элемент массива текущих состояний и сопоставленный ему (с таким же номером) элемент массива теневых состояний. Каждый автомат в процессе функционирования воспринимает элемент массива текущих состояний (это и есть его текущее состояние), и устанавливает в ситуации перехода значение следующего состояния, помещая его значение в элемент массива теневых состояний. Вот собственно и весь механизм реализации функции переходов отдельного автомата и множества параллельных переходов автоматов некой автоматной сети.
Если бы в рамках той же SWITH-технологии аналогичным образом устанавливались текущие состояния автоматов, то это позволило бы рассматривать и в ней параллельную работу автоматов на уровне состояний автоматов. Хотя для корректной реализации параллелизма нужно помещать в теневую память и данные. Однако в нашем случае мы этот механизм оставляем для реализации самому программисту. Даже в силу того, что только он знает, какие данные будут использованы для синхронизации автоматных процессов и, исходя уже из этих соображений, выбирать механизм оперирования ими (один из них мы далее рассмотрим).
Итак, реализация автоматов сводится к следующим шагам. Во-первых, создаются массивы для текущих и теневых состояний. Элементы этих массивов назначаются отдельным автоматам: один элемент для отражения текущего состояния и элемент с таким же номером из массива теневых состояний. Программный автомат, находясь в некотором текущем состоянии, анализирует входные сигналы, глобальные и локальные переменные, текущие состояния других автоматов и т.д. и т.п. В ситуации перехода он выполняет назначенные этому переходу действия и устанавливает, если это необходимо, новое текущее состояние, используя для этого массив теневых состояний.
Описанный процесс реализации функций переходов и выходов происходит последовательно во всех автоматах проекта. И только после этого массив теневых состояний копируется в массив текущих состояний. Это и реализует как раз модуль CopyStates. Далее этот цикл повторяется.
Реализация модели элемента И-НЕ
Модель элемента И-НЕ реализована в форме функционального блока (FB). Его программная реализация на языке LD приведена на рис. 4. Переменные, назначенные функциональному блоку, представлены на рис. 5 (на рис. 4 они скрыты).
Любой FB может иметь переменные нескольких типов: локальные переменные – тип VAR, входные переменные — VAR_INPUT, выходные – VAR_OUTPUT и их совмещенный тип – VAR_IN_OUT. Наша программная реализация элемента И-НЕ имеет только входные и выходные переменные. На диаграмме они представлены входными/выходными линиями соответствующих FB (см. FB с именами И_НЕ1, И_НЕ2 рис. 2). Таким образом, функциональные блоки представляют собой некий аналог, близкий понятию подпрограммы с параметрами в форме его входных и выходных каналов.
Цепь 1 (Network 1) в реализации модели элемента выполняет стандартную операцию для любого функционального блока в автоматной форме. Она устанавливает автомат в исходное состояние по сигналу сброса – bClear или при установке системной переменной M1002, принимающей однократно на один цикл работы ПЛК единичное значение при включении ПЛК.
Тестирование и эксперименты
После записи программы в ПЛК она начинает свою работу, сразу входя в режим генерации. Это процесс отражают светодиоды выходов Y1, Y2. Нажатие кнопок установочных входов, приводит модель в то или иное устойчивое состояние. Ввести модель в режим генерации можно, нажав кнопку сброса – X2 (см. рис.2). И это то, что ожидалось от поведения данной модели в данной ситуации. Если генерация наступает, то можно говорить о верной реализации модели, которая правильно отражает поведение реального триггера.
С другой стороны, возможна также следующая реализация модели триггера, которая представлена на рис. 6. И отличие-то, вроде, при этом не очень существенное – просто перенесли установку выходного сигнала непосредственно в цепи, реализующие переходы, устранив в целях экономии две цепи. Но … поведение модели изменилось. Теперь она не входит в режим генерации.
В чем дело? А дело в привязке выходных каналов к состояниям модели. В первом случае так мы поступили, создав модель по типу автомата Мура. В ней выходной сигнал изменит свое значение, только при смене текущего состояния. В последнем варианте выходной сигнал реализован по типу автомата Мили и изменяется раньше — в процессе реализации перехода, т.е. до смены текущего состояния модели (оно на этот момент еще находится в теневом массиве состояний). И именно это фатальным образом сказывается на поведении модели. Но, заметим, если бы был реализован механизм теневой памяти (см. [3]), то поведение модели не зависело бы от выбранного типа автомата.
Наверняка найдутся программисты, у которых автоматное программирование вызывает явное неприятие. И вот только для них мы разработали еще один вариант, который представлен на рис. 7. Глядя на него можно понять их чувства. Но, господа-товарищи, что нам важнее – красивый код или верная его работа? Анализ результатов тестирования приведенных выше двух реализаций придает этому вопросу уже риторическую окраску.
Проектирование первой версии триггера, безусловно, займет больше времени. Но, во-первых, с увеличением сложности создание автоматной модели, наоборот, уменьшает время проектирования. И должно привлекать не время, а качество проектирования. Оно иное, т.к. в противном случае теория автоматов потеряла бы смысл своего существования. Во-вторых, потратив больше времени на разработку модели, мы можем применять ее как компоненту более сложных проектов, будучи уверенными в результатах ее работы. В-третьих, становится возможным качественно иное документирование проектов, т.к. автоматная форма более компактна и информативна, чем блок-схемное сопровождение программных проектов. И в последнем случае нам в помощь будет положительный опыт использования UML [4].
Вместо заключения
Хотелось бы, заключая статью, продолжить жизнеутверждающую тему предыдущего раздела, но … не получается. А все дело в том, что захотелось получить визуальные подтверждения генерации триггера. И вот с этим-то, как раз, и возникли проблемы… Чтобы однозначно убедиться, что триггер входит в режим генерации, нужно было просто замедлить его работу. И затем по результатам индикации (в нашем случае это светодиоды Y1, Y2) получить наглядное подтверждение, казалось бы, очевидного. Но как это сделать, не изменяя его код?
В ПЛК скорость работы программ зависит от длительностью цикла ПЛК. А он зависит от общего времени последовательной работы программных модулей, находящихся в папке Программы проекта (см. рис.1). Добавляем еще один модуль. В него вставляем уже программный цикл (в ПЛК это будут цепи между командами FOR и NEXT). Смотрим на результаты и … видим, что к нашему удивлению, светодиоды не одновременно загораются/гаснут, а в некой очередности. При этом, что еще больше поражает, сама генерация протекает, пусть и большими задержками, но исправно.
Не буду утомлять предположениями, версиями и т.п. После вынужденного (в целях выяснения проблемы) создания транспортной/инерционной задержки (подробнее о ней см. [3]), после «камлания» с длительностью цикл в добавленном модуле выяснилось, что, похоже, проблема именно в длительности цикла ПЛК. Но как быть с ней? Тоже не сложно. Избегайте операторов FOR-NEXT. А в ситуации, когда нужен все же программный цикл?! Создайте автоматный алгоритм, как это описано выше. В них эти операторы не нужны и потому длительность цикла работы самого ПЛК не будет фатально от них зависеть.
Т.е. мы разобрались с причиной проблемы, так сказать, вывернулись, т.к. теперь понятно, что и как делать, чтобы ее не было. Другими словами, несмотря ни на что, нормальное заключение, кажется, все же получилось… Благодаря все тем же автоматам. Вот, как все просто! Особенно когда знаешь про автоматы…
Литература
1. Рылов С. Языки программирования стандарта МЭК 61131-3. [Электронный ресурс], Режим доступа: https://finestart.school/media/programming_languages, свободный. Яз. рус. (дата обращения 18.07.2022).
2. Серия AS. Руководство по программированию. [Электронный ресурс], Режим доступа: https://deltronics.ru/images/manual/AS_PrM_RU_[112018].pdf, свободный. Яз. рус. (дата обращения 18.08.2022).
3. АВТОМАТНОЕ ПРОГРАММИРОВАНИЕ: ОПРЕДЕЛЕНИЕ, МОДЕЛЬ, РЕАЛИЗАЦИЯ. https://habr.com/ru/post/682422/
4. Буч Г., Рамбо Дж., Якобсон И. Язык UML. Руководство пользователя. Второе издание. Академия АЙТИ: Москва, 2007. – 493 с.
-
Alexander_I
- Сообщения: 954
- Зарегистрирован: 31 окт 2011, 15:18
Re: Вопросы по программированию ПЛК в ISPSoft
Да есть эти инструкции и в WPLsoft (если версия не древняя), если правильно указали тип контроллера в проекте (ES2), и в User Manual тоже есть, если, конечно, руководство для контроллеров ES2 и прочих обновленных.
-
Natrii
- Сообщения: 28
- Зарегистрирован: 02 май 2013, 08:57
Re: Вопросы по программированию ПЛК в ISPSoft
Сообщение
Natrii » 02 май 2013, 09:09
Здравствуйте, подскажите пожалуйста, в программе я использовала инструкцию 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 » 22 авг 2013, 16:07
Здравтствуйте, еще раз!
Занимаюсь сейчас проектом на ISPSoft и обнаружил одну непонятную для меня особенность использования функциональных блоков. Расскажу подробней.
Сделал функциональный блок, очень простой. Он выставляет числовые значения в соответствующих регистрах, если сработали соответствующие контакты. Но, обнаружилось, что числа выставляются даже тогда, когда контакты разомкнуты. Числа не выставляются нигде кроме функионального блока. Как такое может быть? Ведь, если контакт разомкнут, то следующая за ним инструкция выполняться не должна ни при каких условиях! Или в функциональных блоках правила другие? Или это все проблемы старой версии 1.03.
Вот, во вложенной картинке есть пример. Контакты DEV2 и DEV3 разомкнуты. До запуска функционального блока числа в регистрах NUM_2 и NUM_3 были обнулены.
И еще вопрос, вдогонку. В новой версии ISPSoft 2.03, при запуске симулятора, мне выдается предупреждение о том, что у меня в проекте задан контроллер типа ES2, а симулируется тип SV. В чем может выражаться это различие в результатах симуляции? Насколько я понимаю, в логике изменений быть не должно?
- Вложения
-
- voprosfb.png (107.04 КБ) 13555 просмотров
-
Ryzhij
- Сообщения: 1026
- Зарегистрирован: 26 авг 2012, 19:25
- Откуда: Россия Рязань
Re: Вопросы по программированию ПЛК в ISPSoft
Сообщение
Ryzhij » 22 авг 2013, 21:15
AlexB писал(а):Сделал функциональный блок, очень простой. Он выставляет числовые значения в соответствующих регистрах, если сработали соответствующие контакты. Но, обнаружилось, что числа выставляются даже тогда, когда контакты разомкнуты. Числа не выставляются нигде кроме функионального блока. Как такое может быть? Ведь, если контакт разомкнут, то следующая за ним инструкция выполняться не должна ни при каких условиях! Или в функциональных блоках правила другие? Или это все проблемы старой версии 1.03.
Вот, во вложенной картинке есть пример. Контакты DEV2 и DEV3 разомкнуты. До запуска функционального блока числа в регистрах NUM_2 и NUM_3 были обнулены.
А с чего бы изменяться содержимому в регистрах?
После однократного исполнения фукционального блока разве программа где-то ещё записывает в эти регистры иное значение?
Что положили, то там и лежит, пока не перезапишите.
__________________________
Помощь — понятие растяжимое, всяк трактует его в меру своего эгоизма…
-
AlexB
- Сообщения: 7
- Зарегистрирован: 01 фев 2012, 16:34
Re: Вопросы по программированию ПЛК в ISPSoft
Сообщение
AlexB » 22 авг 2013, 21:58
После однократного исполнения фукционального блока разве программа где-то ещё записывает в эти регистры иное значение?
В том то и проблема, что в регистры значение записывается только в этом функциональном блоке и нигде более. Перед запуском функционального блока регистры обнуляются каждый раз. Я отключал строку (Network) с ФБ и убеждался, что обнуление работает. Поэтому я могу уверенно говорить, что регистры заполняются именно в функциональном блоке. Причем, достаточно замкнуть контакт на соответствующем входе блока, чтобы значение записалось в регистр. После размыкания контакта и последующего обнуления, значение в регистре сохраняется. В той картинке, что я приложил к предыдущему сообщению видно, что контакт DEV2 (входная переменная блока) разомкнут. Именно он в блоке разрешает запись числа 2 в регистр NUM_2.
То есть логика такая:
1) обнуляются регистры
2) после обнуления запускается ФБ
3) при замыкании входного контакта заполняется соответствующий регистр
4) при размыкании контакта он не меняется (как и должно быть)
5) а далее, так как программа циклична, мы возвращаемся к шагу 1, то есть к обнулению. И на этом шаге регистр по прежнему сохраняет свое значение. Напомню, без функционального блока обнуление прекрасно работает, так что проблема, по всей видимости, не в нем.
Вот я добавил картинку для понимания, удалив некоторые из инструкций обнуления, чтобы не растягивать картинку. Как видно, в первой сети регистры должны обнуляться. Во второй располоден функциональный блок, при этом он тоже запущен, тем же флагом, что и обнуление. Контакты на входе блока разомкнуты, на выходе по прежнему заполненные первые два регистра. Внутренности блока есть в предыдущем моем сообщении.
- Вложения
-
- vopros22.png (90.17 КБ) 13546 просмотров
-
AlexB
- Сообщения: 7
- Зарегистрирован: 01 фев 2012, 16:34
Re: Вопросы по программированию ПЛК в ISPSoft
Сообщение
AlexB » 23 авг 2013, 10:02
Ура! Я понял свою ошибку. Инструкции в функциональном блоке действительно не выполнялись, при разомкнутых контктах, как и должно быть. Но регистры все равно заполнялись, потому что выходные переменные функционального блока сохраняли значение. Тое сть:
1) регистры обнуляются
2) в зависимости от состояния контактов на входе ФБ, заполняются выходные регистры ФБ
3) Значения выходных регистров ФБ передаются в те регистры, что ранее были обнулены. Так как выходные регистры (при разомкнутых контактах) не были перезаписаны, то в них и сохранялось значение, которое записывалось в обнуленные регистры.
-
AlexB
- Сообщения: 7
- Зарегистрирован: 01 фев 2012, 16:34
Re: Вопросы по программированию ПЛК в ISPSoft
Сообщение
AlexB » 23 авг 2013, 10:06
Не понял юмора. А с какой стати они должны быть обнулены, если после обнуления сразу идет присвоение?
Имелось в виду что присвоения и не должно быть, так как контакты для инструкций присвоения разомкнуты. Оказалось что функциональный блок сохраняет значение своих выходов. При разомкнутых контактах ФБ не записывает в выхорд новое значение, зато оставляет там старое. И оно записывается в регистр, который я присоединил к выходу, причем этот регистр ранее был обнулен. Так что, оказалось, что достаточно сделать не выходные регистры, а регистры типа IN_OUT. И проблема решилась. Теперь для незадействованных выходов значение НЕ СОХРАНЯЕТСЯ.
Delta VFD-ED — оптимальный ПЧ для скоростного лифта
06.10.2022
При выборе преобразователя частоты для двигателей лифтов необходимо учитывать множество нюансов, чтобы обеспечить пользователям лифтов должный уровень комфорта и безопасности
Сегодня большинство высотных зданий и жилых домов, как при их возведении, так и при капремонте, оснащаются скоростными лиф ..
Читать далее…
ПЛК Delta AH500 управляют системой водоснабжения небольшого города
06.10.2022
Комплексная система управления станцией водоснабжения для небольшого города, построенная на базе высокопроизводительных резервируемых ПЛК Delta серии AH500, обеспечивает подготовку, очистку и подачу до 60 тысяч тонн воды ежедневно
Качество и эффективность водоснабжения — от забора воды, ее фильтр ..
Читать далее…
Системы машинного зрения Delta помогают выполнять техническое обслуживание подвижного состава
06.10.2022
Автоматизированный комплекс на базе системы машинного зрения Delta DMV2000 помогает выполнять техническое обслуживание подвижного состава и обеспечивать их безопасность, выполняя визуальный контроль подвагонного пространства
Рельсовый транспорт (ж.-д. поезда, трамваи, метро) по объемам перевозок ..
Читать далее…
Системы машинного зрения Delta серии DMV бесконтактно выполняют привязку заготовок к системе координат станка
06.10.2022
Системы машинного зрения Delta DMV2000/3000 позволяют выполнять автоматическую привязку заготовки к системе координат станка бесконтактным способом в считанные секунды, осуществлять бесконтактный контроль инструмента и заготовок на наличие дефектов и др.
В мире металлообработки одна из главны ..
Читать далее…
ISPSoft — это интегрированная среда разработки программного обеспечения от компании Delta Electronics. Она предназначена для программирования PLC (Programmable Logic Controllers). Среда разработки включает в себя множество инструментов, которые помогают разработчикам создавать качественное программное обеспечение для автоматизации производства.
Установка
Для установки ISPSoft скачайте установочный файл с официального сайта Delta Electronics. Установка проходит стандартным способом.
Основные функции
- Разработка программного обеспечения для PLC.
- Управление проектами.
- Поддержка различных типов контроллеров.
- Расширенный набор инструментов для отладки и тестирования.
- Создание документации.
- Генерация отчетов о проекте.
Руководство для начинающих
1. Создание проекта
Проект в ISPSoft означает набор файлов и настроек, необходимых для создания программного обеспечения для PLC. Чтобы создать новый проект, выполните следующие действия:
- Запустите ISPSoft.
- Нажмите на кнопку «Create new project» на главной странице.
- Введите имя проекта и выберите тип контроллера, для которого будет разрабатываться проект.
- Нажмите кнопку «Create».
2. Создание программы
После создания проекта можно начать создание программы для PLC. Для этого выполните следующие действия:
- Откройте созданный проект.
- Выберите «Program» в дереве проекта.
- Нажмите правой кнопкой мыши на «Program» и выберите «Add new program».
- Введите имя программы и выберите тип языка программирования.
- Нажмите кнопку «OK».
3. Написание программы
Далее можно начинать написание программы для PLC. ISPSoft предоставляет множество инструментов для визуального создания программ. Для создания программы выполните следующие действия:
- Откройте созданную программу.
- Используйте инструменты на панели инструментов, чтобы создавать элементы программы (контакты, реле, регистры, и т.д.).
- Сохраните программу.
4. Загрузка программы в PLC
После того, как программа написана и сохранена, необходимо загрузить ее в PLC. Для этого сделайте следующее:
- Подключите PLC к компьютеру.
- В ISPSoft выберите в меню «Target» -> «Download».
- Нажмите кнопку «Download».
- Дождитесь завершения загрузки программы в PLC.
5. Отладка программы
После загрузки программы в PLC можно приступить к ее отладке. Для этого можно использовать множество инструментов ISPSoft, например:
- «Simulate» — инструмент для симуляции работы PLC.
- «Monitor» — инструмент для отслеживания значений переменных в программе.
- «Breakpoint» — инструмент для установки точек останова программы.
6. Создание документации
ISPSoft позволяет создавать документацию для программы в автоматическом режиме. Для этого выполните следующие действия:
- Откройте созданную программу.
- Выберите «Document» в меню слева.
- Нажмите кнопку «Generate Document».
- Дождитесь создания документации.
Вывод
ISPSoft — это мощная интегрированная среда разработки программного обеспечения для PLC. Она предоставляет широкие возможности для разработчиков PLC, позволяя создавать качественное программное обеспечение для автоматизации производства. Надеемся, что данное руководство помогло вам начать работу с ISPSoft и создать свой первый проект для PLC.
Имя ▼ ▲ | Скачать | Язык | Категория ▼ ▲ | Размер(мегабайты) | Дата ▼ ▲ |
ISPSoft v2.04.14 (ПО для контроллеров Delta. Совместимо с Windows 2000, XP, Vista и Windows 7(32-bit/64-bit)) |
английский | Программное обеспечение | 214,38 Мбайт | 07.02.2014 | |
CANopen Builder v2.05 |
английский | Программное обеспечение | 125,22 Мбайт | 07.02.2014 | |
Чертежи CAD (2D) контроллеров и модулей расширения ES2/EX2 |
английский | Чертежи | 13,11 Мбайт | 15.10.2013 | |
COMMGR v.1.04 — integrated communication management software |
английский | Программное обеспечение | 11,49 Мбайт | 29.08.2013 | |
Каталог «Программируемые контроллеры серий DVP/AH500 и панели оператора DOP/TP» |
русский | Рекламные материалы | 9,06 Мбайт | 23.08.2013 | |
Сертификат соответствия на программируемые контроллеры Delta |
русский | Сертификаты | 0,41 Мбайт | 08.05.2013 | |
EDS Builder V2.00 (Поддерживает Windows XP, Windows 7 (32bit)) |
английский | Программное обеспечение | 9,48 Мбайт | 29.04.2013 | |
Delta Modbus DLL Library v.2.2 (для Virtual Basic 6.0, Virtual C++ 6.0, Borland C++ Builder 6.0) |
английский | Программное обеспечение | 1,36 Мбайт | 29.04.2013 | |
WPLSoft v2.33 (ПО для контроллеров DVP. Совместимо с Windows 98, Me, NT4.0, 2000, XP, Vista или Windows 7(32-bit/64-bit)) |
английский | Программное обеспечение | 67,94 Мбайт | 16.04.2013 | |
Руководство по использованию программы ISPSoft |
английский | Руководства пользователя | 23,4 Мбайт | 15.02.2013 | |
Лист технических данных DVP30EX2 |
английский | Руководства пользователя | 1,08 Мбайт | 01.11.2012 | |
Руководство по программированию ПЛК Delta DVP |
английский | Руководства пользователя | 8,94 Мбайт | 27.04.2012 | |
Примеры программ ПЛК для решения типовых задач автоматизации |
английский | Примеры применения | 8,77 Мбайт | 27.04.2012 | |
Видео-уроки по программированию ПЛК Delta DVP с помощью ISPSoft |
русский | Руководства пользователя | 4,25 Мбайт | 20.04.2012 | |
Руководство по программированию DVP- ES2/EX2/SS2/SA2/SX2 |
английский | Руководства пользователя | 6,91 Мбайт | 29.02.2012 | |
Свидетельство об утверждении типа средств измерения DVP (с приложением) |
русский | Сертификаты | 0,83 Мбайт | 24.01.2012 | |
Руководство по программированию DVP-ES/EX/SS/SA/SX/SC/SV/EH2 |
русский | Руководства пользователя | 12,28 Мбайт | 08.12.2011 | |
Новые функции DVP-ES2 |
английский | Презентация | 0 Мбайт | 06.12.2011 | |
Полезные сведения о программе ISPSoft 1.03 |
английский | Руководства пользователя | 0,21 Мбайт | 06.12.2011 | |
Разрешение Ростехнадзора РФ на ПЛК серии DVP и панели оператора DOP и TP |
русский | Сертификаты | 0,2 Мбайт | 19.09.2011 |
Имя ▼ ▲ | Скачать | Язык | Категория ▼ ▲ | Размер(мегабайты) | Дата ▼ ▲ |
Сертификат соответствия ГОСТ Р на соединительные шнуры для подключения к сети питания серий EG, DVP, DOP, ASD, RJ |
русский | Сертификаты | 0,22 Мбайт | 01.09.2011 | |
Модули дискретного ввода/вывода для DVP-ES2/EX2 |
английский | Руководства пользователя | 0,52 Мбайт | 12.10.2010 | |
Каталог «Программируемые контроллеры серии DVP-ES2/EX2» |
русский | Рекламные материалы | 6,22 Мбайт | 13.09.2010 | |
Каталог «Программируемые контроллеры серии DVP-SS2/SA2/SX2/SV/ ES2/EX2/EC3/EH2/PM» |
русский | Рекламные материалы | 9,91 Мбайт | 13.09.2010 | |
Руководство по эксплуатации DVP-ES2/EX2 |
русский | Руководства пользователя | 0,95 Мбайт | 13.09.2010 | |
Инструкция по сопряжению контроллеров Delta DVP со SCADA системами |
русский | Руководства пользователя | 2 Мбайт | 13.09.2010 | |
Инструкция по работе контроллеров Delta DVP с GSM-модемами |
русский | Руководства пользователя | 1,87 Мбайт | 13.09.2010 |