Программируемые контроллеры серии 7502.1 Общие вопросыQ: Почему контроллеры WAGO и Beckhoff выглядят так похоже? Чем они отличаются друг от друга? A: Эти две немецкие фирмы разрабатывали линейку распределенного ввода-вывода и контроллеров совместно. Beckhoff разработал электронику, а WAGO сделала конструктив для неё. Серии 750 и 753 у WAGO и серии BC и BX у Beckhoff являются плодом этого сотрудничества. В 2000 году срок действия контракта между фирмами закончился, и каждая из них начала развивать линейку в своем направлении. Поэтому набор модулей и возможности контроллеров, разработанных с этого момента, несколько отличаются. Тем не менее, обе фирмы, несмотря на некоторую конкуренцию на рынке, сохраняют хорошие отношения и делятся своими ноу-хау друг с другом. Q: Купил контроллер, включил, а он что-то не работает, только лампочками мигает, и подключиться к нему не получается... A: Прежде всего убедитесь, что к контроллеру подключен хотя бы один модуль ввода-вывода и оконечный модуль. Это минимальная конфигурация. Q: Где можно найти функциональные блоки и примеры программ? A: Библиотеки WAGO, многие с работающими примерами, доступны на сайте WAGO. A [А. Быков] Рекомендуется также сайт независимых немецких разработчиков http://www.oscat.de/ , у которых есть библиотеки и под Codesys v2 и v3 (бесплатные). Документация к сожалению на немецком, но описания в заголовках самих блоков - на английском. Также обращаю внимание, что код библиотек открытый.
Q: Записываю программу в ПЛК (Online -> Login). Потом делаю Create boot project, программа работает. Потом отключаюсь от контроллера и перезапускаю ПЛК, после этого программа уже не работает. A [А. Барбот]: Скорее всего, дело в положении переключателя режима контроллера. Этот переключатель находится справа от сервисного разъема. Для автоматического запуска программы при старте котроллера нужно установить переключатель в самое верхнее положение (всего их 3). При этом необходимо, чтобы программа была записана в энергонезависимую память контроллера (команда Create boot project). Подробнее об этом переключателе можно узнать из руководства к контролеру. Q: В режиме он-лайн при просмотре кода блока данные показываются красным и вместо значений - invalid. A [А. Быков]: Надо различать implementation и instance кода. Когда находишься в режиме редактирования какого-то блока, то при переходе в on-line как раз будет так, как описано выше. Надо выбрать конкретный экземпляр (instance), данные которого требуется мониторить. Q: Вопрос по документации. В Интернете нашел такие файлы «342_Manual_RUS.pdf», «841_Quickstart_RUS.pdf», хотелось бы побольше таких файлов в своей библиотеке. A [А. Барбот]: Кроме этих мне известен только 841_Manual_RUS.pdf. A [М. Ананских]: Существует также перевод документации на контроллеры с Profibus (750-301, -303, -803, 833), а также на некоторые модули, выполненный фирмой CERIC. Перевод корявый, но лучше чем ничего. Их можно найти в разделе "файлы". Q: Можно ли самому изготовить кабель для программирования? Каково назначение контактов разъема для программирования? A: Да, можно. Потребуется микросхема преобразователя RS-232/TTL (MAX232 или аналог). Распайка разъема WAGO сверху вниз:
Q: Сколько модулей одновременно может быть подключено к одному контроллеру? A [М. Ананских]: WAGO не гарантирует работу узла, состоящего из более чем 64 активных и пассивных модулей (из соображений ЭМС). Единственный способ - использовать расширение шины K-bus с помощью модулей расширения шины 750-627, 750-628 и утилиты ExtensionSetting. Преодолеть ограничение в 64 модуля с их помощью можно только в 32-разрядных контроллерах (750-841, 873 и т.д.). Однако скорость обмена по K-bus в этом случае снизится. Кроме того, количество модулей, использующих режим mailbox, ограничено - см. документацию на модули.
A [М. Ананских]: Пароль 1234. Советую записать где-нибудь, так как в документации его почему-то нет. Q: Можно ли считать программу из контроллера? A [М. Ананских]: Прежде чем получить ответ на этот вопрос, необходимо понимать, что среда разработки CoDeSys является компилятором, в отличие от систем разработки для большинства других контроллеров, являющихся интерпретаторами. Разумеется, у каждого подхода есть и преимущества, и недостатки. Достоинством компилятора является то, что на выходе получается "родной" машинный код, скорость выполнения которого на порядок выше скорости работы интерпретатора. Однако, даже если удастся "вытащить" откомпилированную программу из контроллера, восстановить исходный текст из такого кода практически невозможно. Существует возможность загрузить в контроллер исходный текст проекта. В этом случае проект можно открыть в CoDeSys, считав его непосредственно из контроллера, в котором он хранится в файле source.dat. Но, всё же, мне кажется слишком нерациональным использовать скудную память контроллера в качестве дискеты. Думаю, именно поэтому мало кто использует такую возможность. Теоретически можно, считав исполняемый код из одного контроллера, записать его в другой. Однако в 16-разрядных контроллерах такой возможности для пользователя не предусмотрено по соображениям защиты авторских прав разработчиков программ. У сотрудников ВАГО имеется специальная утилита NINO, позволяющая считывать содержимое памяти контроллера, но её не дают "простым людям". В 32-разрядных контроллерах содержимое файловой системы доступно пользователю. Программа контроллера хранится в файле PLC/DEFAULT.PRG, а её контрольная сумма в файле PLC/DEFAULT.CHK. Они могут быть переписаны на другой контроллер, используя, к примеру, FTP сервер или саму систему разработки. Но разработчик может принять меры против этого, установив пароль для доступа к контроллеру. Q: Чем отличаются переменные-марекры (%M) от переменных VAR_RETAIN? В документации сказано, что и те и другие сохраняются в NVRAM, но у меня значение маркера обнуляется при перезапуске. A: Переменные в M-памяти имеют такие же свойства, как и RETAIN переменные. Однако, при запуске программы их значения инициализируются нулями, если не указано другого значения для инициализации. Избежать инициализации можно с помощью инструкции {flag noinit}. Примеры:
b : INT {flag noinit}; b : INT; Q: Можно ли модули ввода-вывода WAGO 750/753 подключать к контроллерам и каплерам Beckhoff? A [М. Ананских]: Можно, но не все и не к любым контроллерам. Аппаратно модули совместимы только с теми контроллерами (Bus Terminal Controller) и каплерами (Bus Coupler), которые используют шину K-bus. Это серии BC и BX, BK и LC (последняя позволяет подключать только дискретные модули), а также, вероятно, CX. Дискретные модули ввода-вывода не имеют идентификатора, и поэтому модули от WAGO работают с Beckhoff точно так же, как и родные. Сложнее с аналоговыми и специальными модулями. Большинство модулей без проблем распознаются программным обеспечением контроллера и конфигурационной утилитой KS-2000. С ними можно работать точно также, как и с родными модулями, но в KS-2000 не будут доступны настройки для них. К примеру, модуль 750-461 виден в KS-2000 как "0750-0461". А вот модули, требующие поддержки на уровне программного обеспечения контроллера, могут оказаться несовместимы. И, разумеется, ни тот, ни другой производитель не будет гарантировать работу своего оборудования совместно с чужим. |