Profinet
Здравствуйте! имеется Kuka 8.3.39. Есть задача наладить её связь связь по Profinet со слейв устроствами. Аппаратно настроил обмен, вопрос - как адресно обратиться к ячейкам памяти в коде?
|
Для того чтобы адресно обратиться к ячейкам памяти в коде надо:
1. Правильно настроить мапинг входов/выходов Куки на профинетовские. (скажем все I/O Куки после 20 мапятся на профинетовские I/O). 2. Вручную с тачпада, из экрана для I/O проверяется функциональность сигналов (так же и со стороны PLC). 3. В файле $config.dat, в секции "USER GLOBALS" объявляем, например две переменные: SIGNAL MyPlcByteIn $IN[20] TO $IN[27] ;получаем байт данных только для чтения SIGNAL MyPlcByteOut $OUT[20] TO $OUT[27] ;получаем байт данных, чтение и запись 4. В программе обращаемся с переменными как спеременными типа INT: IF (MyPlcByteIn == 1) THEN PTP HOME ENDIF 5. Если PLC Siemens, то не забываем менять местами старший и младший байт в двухбайтном слове. Подробнее смотрим в хелпе для WorkVisual. |
Цитата:
Теперь следующий вопрос - в программе периодически перед выполнением тех или иных действий необходима информация из профинета... Как лучше сделать перед местом использования вызывать функцию, которая будет считывать Профинет и кидать его в переменные, либо - в sps.sub постоянно\параллельно вызывать эту функцию? P.S. Кто-нибудь из гуру (ну или просто выше новичка =) ) может дать контакты (любой мессенджер (вацапа, вибер, тлг, аська) или почта) для оперативных мелких вопросов в помощи поиска необходимой литературы или мелких вопросов касаемо программирования контроллера Кука С4? |
мапить можно и с нулевого бита, система этого делать не запрещает.
не очень понятно что ты хочешь сделать. что значит необходима инфа с профинета? считывать состояние бита? зачем тогда его перезаписывать в другую переменную? в общем я не понял, опиши что хочешь поподробнее. телефон, конечно, не дам. почту скинул в личку. |
В нашем случае, роботы приходят с уже предустановленными карточками ввода/вывода.
Это обычно Input output board (IOB-16-16B) или EtherCAT с расширениями на 16 бит I/O. Поэтому младшие 16 адресов уже какбы заняты. |
в таком случае да
|
Пришел к выводу, что придется постоянно записывать данные с профинета в переменные, иначе алгоритмы не будут корректно работать... Вкуриваю дальше - как оптимальнее сделать - использовать sps.sub или как-то запускать параллельную программу
|
Если это данные от PLC к роботу, то записывать ничего не надо.
Контроллер через профинет записывает данные в переменные асинхронно, не зависимо от программы робота. Остается их только прочитать. Данные от робота к PLC записываются программой, в зависимости от логики. Не обязательно в sps.sub. Запускать параллельную программу в Куке нельзя, только прерывания. |
Цитата:
по поводу прерываний - можете ли подсказать где пошукать информацию о них? особенно интересует - как каждый цикл контроллера (ну или с заданной периодичностью) изменять состояние бита, для того, что ПЛК понимал, что связь не потеряна |
Когда робот теряет соединение с контроллером по
профинету, то он выбрасывает исключение на смартпаде и выключет моторы. Устанавливает соединение также самастоятельно, выдет сообщение и если после этого подтвердить сообщение со смартпада, то можно продолжить работу. Думаю в контроллере будет видно ошибку соединения. Что касается прерываний, то по ним, а также много чего по программированию Куки, информация имеется. Я только не пойму, как можно pdf файлы выкатить на форум. |
Часовой пояс GMT +2, время: 22:08. |
vBulletin v3.6.2, Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co