Страница 1 из 1
Profibus DP
Добавлено: 07 июл 2014, 14:14
Автоматизатор
Закупили оборудование, начали программировать связь всяких устройств по Profibus DP. Практического опыта маловато, документация вся на буржуйском языке, что не упрощает жизнь.
Прошу подскажите:
- как наиболее правильно считать данные по сети с преобразователя частоты?
Т.е. для преобразователя частоты Yaskawa A1000 (плата Profibus SI-P3) выбран профиль Extended Data 2 Register Map, в котором входных параметров 12 байт. Связь настроена, можно получить данные просто опросив периферию, считав данные скажем в меркерную память MB100-MB111:
Код: Выделить всё
L PID256
T MD100
L PID260
T MD104
L MD264
T PID108
Если я правильно понимаю, то полученные таким образом данные могут быть неконсистентными. Пробовал использовать для чтения системную функцию SFC14, но с ее помощью получается считать только 4 байта. При попытке считать данные:
Код: Выделить всё
CALL "DPRD_DAT"
LADDR :=W#16#100
RET_VAL:=MW10
RECORD :=P#M 100.0 BYTE 12
Выдается ошибка:
80B1"The length of the specified destination area is not identical to the user data length configured with STEP 7"
В чем собака порылась не понимаю.
Прошу подскажите:
- Как обрабатывать ошибки связи? Использовать OB86 ? Еще какие надо блоки? Может кто примером поделиться или ссылкой полезной?
Re: Profibus DP
Добавлено: 07 июл 2014, 14:33
ward
смотри GSD файл твоего частотника и описание на него, там побайтно должно быть написано что за что отвечает
Re: Profibus DP
Добавлено: 07 июл 2014, 14:41
Автоматизатор
ward писал(а):смотри GSD файл твоего частотника и описание на него, там побайтно должно быть написано что за что отвечает
С расшифровкой байт понятно. Не понятно с консистентностью.
Сейчас немного посмотрел более подробно профили. Некоторые профили имеют свойство "Consistent over" равное "Total length", а некоторые только "Unit". Думаю, поэтому ругался SFС14. Последний раз сталкивался с Profibus году в 2009, все уже позабыл, теперь что-то потихоньку всплывает в памяти
Re: Profibus DP
Добавлено: 07 июл 2014, 18:11
Михайло
Step7 выделил для A1000 6 слов во входной памяти и 6 слов в выходной памяти ПЛК?
Re: Profibus DP
Добавлено: 08 июл 2014, 05:44
Автоматизатор
Михайло писал(а):Step7 выделил для A1000 6 слов во входной памяти и 6 слов в выходной памяти ПЛК?
Да
Автоматизатор писал(а):Некоторые профили имеют свойство "Consistent over" равное "Total length", а некоторые только "Unit". Думаю, поэтому ругался SFС14.
Все равно SFC14 выдает ошибку, при попытке считать более 4 байт
.
Re: Profibus DP
Добавлено: 08 июл 2014, 05:56
Михайло
Я обычно выгружал данные в блок DB.
Re: Profibus DP
Добавлено: 08 июл 2014, 06:55
Автоматизатор
Михайло писал(а):Я обычно выгружал данные в блок DB.
Без разницы куда выгружать, все равно выдает ошибку:
80B1"The length of the specified destination area is not identical to the user data length configured with STEP 7"
Пробовал считать 6 байт данных с датчика положения Balluff BTL5 (выделено 6 байт как "Total length") - все равно выдает ошибку
80B1
Re: Profibus DP
Добавлено: 08 июл 2014, 07:10
ward
Выбрось SFC14, это же профибас, обращайся напрямую как ко входному байту
Re: Profibus DP
Добавлено: 09 июл 2014, 21:22
CHANt
1) Профибас передает только словами, поэтому попытка считать двойным словом
неверна, правильно будет:
2) Откуда идет связь с порта симатика или коммуникационный процессор, типа СР-342-5? Если порт контроллера, то в хардваре выберите профиль телеграммы с полной проверкой консистентности "whole cons." Проверка по словам не работает.
На тему целостности данных много копий "сломано", мнений много и все они имеют место жить, но, для начала я бы не заморачивался. Сколько уже раз обновилась системное ПО симатиков?! Аппаратная часть профибаса сама выполнит проверку на целостность данных. Я использую SFC14/15 для диагностики связи, так как лень вытаскивать списки SSD, расшифровать их, когда есть выхода SFC14/15 #Ret_Val, при=0 связь есть, а если что вылетело, тогда уже можно посмотреть и в степе.Ну и то что оформляю все в FC, это удобно таскать по проектам, чем ручками набивать L PIW256 T MW100
Re: Profibus DP
Добавлено: 10 июл 2014, 19:28
Автоматизатор
CHANt писал(а):2) Откуда идет связь с порта симатика или коммуникационный процессор, типа СР-342-5? Если порт контроллера, то в хардваре выберите профиль телеграммы с полной проверкой консистентности "whole cons." Проверка по словам не работает.
Сейчас тренируемся на 314C-2DP, ждем со дня на день поставку S7-1200 с коммуникационником Profibus Master.
Пробовал и
, и
- все работает). Однако, если выключить питание инвертора, то вызывается OB86. А затем OB122 вроде (как я понял попытка считать из недоступной области).
На сейчас решил оставить функции SFC14/15 для чтения сразу 2-х слов. Работает более корректно и выглядит эстетичней.
Немного растерялся при выборе профиля. Столько их много всяких.
Надо будет писать данные в пару регистров в процессе работы станка. В профиле реализована возможность это делать с помощью команд Модбас. Для контроля выполнения запросов используются специальные биты, которые постоянно инвертируются.
Re: Profibus DP
Добавлено: 10 июл 2014, 20:02
CHANt
Для спокойствия, кроме ОВ86, ОВ122, я еще подгружаю ОВ40, ОВ80, ОВ82, ОВ121
Re: Profibus DP
Добавлено: 11 июл 2014, 06:06
Автоматизатор
CHANt писал(а):Для спокойствия, кроме ОВ86, ОВ122, я еще подгружаю ОВ40, ОВ80, ОВ82, ОВ121
Спасибо. А то я уже забыл, какие еще блоки надо.
Рассказывали страшную историю: одна фирма поставила оборудование в цех. Все вроде нормально работало, но в один прекрасный день встало все! Все установки по всему цеху.
Оказалось, что где-то на периферии отключился частотник, произошел сбой связи, вызвался OB, его в проекте не было и контроллер перешел в СТОП. Контроллер верхнего уровня, обнаружил обрыв связи и тоже выпал в СТОП. Далее и все остальные контроллеры. Пока разбирались, кто был инициатор, много времени прошло.
Re: Profibus DP
Добавлено: 11 июл 2014, 06:34
Михайло
Тоже интересный вопрос: а наполнение всех этих блоков какое? Все пустые?
Re: Profibus DP
Добавлено: 11 июл 2014, 06:57
CHANt
Михайло писал(а):Тоже интересный вопрос: а наполнение всех этих блоков какое? Все пустые?
Обычно пустые. Так как тратить время на разработку диагностики жалко, ну и для 300 серии бывает критично использовать не по назначению каждый килобайт. Оптимально поднимать в случае с S7-400 и разработкой в PCS7, там работа с диагностикой более дружелюбна к пользователю. Я одно время, когда связь еще не была дешевой, выводил часть диагностики в буфер контроллера, чтобы при отсутствии связи, часть критичных событий сохранялась, но там всего не более 100 сообщений храниться. Но, столько времени надо прописывать все эти перекрестные ссылки)))