Profibus DP

Инженерное программное обеспечение
Ответить
Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Profibus DP

Сообщение Автоматизатор »

Закупили оборудование, начали программировать связь всяких устройств по 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 ? Еще какие надо блоки? Может кто примером поделиться или ссылкой полезной?

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: Profibus DP

Сообщение ward »

смотри GSD файл твоего частотника и описание на него, там побайтно должно быть написано что за что отвечает

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Re: Profibus DP

Сообщение Автоматизатор »

ward писал(а):смотри GSD файл твоего частотника и описание на него, там побайтно должно быть написано что за что отвечает
С расшифровкой байт понятно. Не понятно с консистентностью.

Сейчас немного посмотрел более подробно профили. Некоторые профили имеют свойство "Consistent over" равное "Total length", а некоторые только "Unit". Думаю, поэтому ругался SFС14. Последний раз сталкивался с Profibus году в 2009, все уже позабыл, теперь что-то потихоньку всплывает в памяти :(

Михайло
Администратор
Сообщения: 3899
Зарегистрирован: 19 сен 2012, 19:16

Re: Profibus DP

Сообщение Михайло »

Step7 выделил для A1000 6 слов во входной памяти и 6 слов в выходной памяти ПЛК?

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Re: Profibus DP

Сообщение Автоматизатор »

Михайло писал(а):Step7 выделил для A1000 6 слов во входной памяти и 6 слов в выходной памяти ПЛК?
Да
Автоматизатор писал(а):Некоторые профили имеют свойство "Consistent over" равное "Total length", а некоторые только "Unit". Думаю, поэтому ругался SFС14.
Все равно SFC14 выдает ошибку, при попытке считать более 4 байт :( .

Михайло
Администратор
Сообщения: 3899
Зарегистрирован: 19 сен 2012, 19:16

Re: Profibus DP

Сообщение Михайло »

Я обычно выгружал данные в блок DB.

Код: Выделить всё

RECORD :=P#DB1.DBX0.0 BYTE 12

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Re: Profibus DP

Сообщение Автоматизатор »

Михайло писал(а):Я обычно выгружал данные в блок 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

ward
Специалист
Сообщения: 415
Зарегистрирован: 12 ноя 2012, 08:44

Re: Profibus DP

Сообщение ward »

Выбрось SFC14, это же профибас, обращайся напрямую как ко входному байту

Аватара пользователя
CHANt
Профессионал
Сообщения: 553
Зарегистрирован: 13 окт 2012, 15:24

Re: Profibus DP

Сообщение CHANt »

1) Профибас передает только словами, поэтому попытка считать двойным словом

Код: Выделить всё

L PID256
T MD100
неверна, правильно будет:

Код: Выделить всё

L PIW256
T MW100
2) Откуда идет связь с порта симатика или коммуникационный процессор, типа СР-342-5? Если порт контроллера, то в хардваре выберите профиль телеграммы с полной проверкой консистентности "whole cons." Проверка по словам не работает.

На тему целостности данных много копий "сломано", мнений много и все они имеют место жить, но, для начала я бы не заморачивался. Сколько уже раз обновилась системное ПО симатиков?! Аппаратная часть профибаса сама выполнит проверку на целостность данных. Я использую SFC14/15 для диагностики связи, так как лень вытаскивать списки SSD, расшифровать их, когда есть выхода SFC14/15 #Ret_Val, при=0 связь есть, а если что вылетело, тогда уже можно посмотреть и в степе.Ну и то что оформляю все в FC, это удобно таскать по проектам, чем ручками набивать L PIW256 T MW100

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Re: Profibus DP

Сообщение Автоматизатор »

CHANt писал(а):2) Откуда идет связь с порта симатика или коммуникационный процессор, типа СР-342-5? Если порт контроллера, то в хардваре выберите профиль телеграммы с полной проверкой консистентности "whole cons." Проверка по словам не работает.
Сейчас тренируемся на 314C-2DP, ждем со дня на день поставку S7-1200 с коммуникационником Profibus Master.

Пробовал и

Код: Выделить всё

 L PIW25
, и - все работает). Однако, если выключить питание инвертора, то вызывается OB86. А затем OB122 вроде (как я понял попытка считать из недоступной области).

На сейчас решил оставить функции SFC14/15 для чтения сразу 2-х слов. Работает более корректно и выглядит эстетичней. :)

Немного растерялся при выборе профиля. Столько их много всяких.
Надо будет писать данные в пару регистров в процессе работы станка. В профиле реализована возможность это делать с помощью команд Модбас. Для контроля выполнения запросов используются специальные биты, которые постоянно инвертируются.

Аватара пользователя
CHANt
Профессионал
Сообщения: 553
Зарегистрирован: 13 окт 2012, 15:24

Re: Profibus DP

Сообщение CHANt »

Для спокойствия, кроме ОВ86, ОВ122, я еще подгружаю ОВ40, ОВ80, ОВ82, ОВ121

Аватара пользователя
Автоматизатор
Профессионал
Сообщения: 962
Зарегистрирован: 09 окт 2012, 05:18

Re: Profibus DP

Сообщение Автоматизатор »

CHANt писал(а):Для спокойствия, кроме ОВ86, ОВ122, я еще подгружаю ОВ40, ОВ80, ОВ82, ОВ121
Спасибо. А то я уже забыл, какие еще блоки надо.

Рассказывали страшную историю: одна фирма поставила оборудование в цех. Все вроде нормально работало, но в один прекрасный день встало все! Все установки по всему цеху.
Оказалось, что где-то на периферии отключился частотник, произошел сбой связи, вызвался OB, его в проекте не было и контроллер перешел в СТОП. Контроллер верхнего уровня, обнаружил обрыв связи и тоже выпал в СТОП. Далее и все остальные контроллеры. Пока разбирались, кто был инициатор, много времени прошло.

Михайло
Администратор
Сообщения: 3899
Зарегистрирован: 19 сен 2012, 19:16

Re: Profibus DP

Сообщение Михайло »

Тоже интересный вопрос: а наполнение всех этих блоков какое? Все пустые?

Аватара пользователя
CHANt
Профессионал
Сообщения: 553
Зарегистрирован: 13 окт 2012, 15:24

Re: Profibus DP

Сообщение CHANt »

Михайло писал(а):Тоже интересный вопрос: а наполнение всех этих блоков какое? Все пустые?
Обычно пустые. Так как тратить время на разработку диагностики жалко, ну и для 300 серии бывает критично использовать не по назначению каждый килобайт. Оптимально поднимать в случае с S7-400 и разработкой в PCS7, там работа с диагностикой более дружелюбна к пользователю. Я одно время, когда связь еще не была дешевой, выводил часть диагностики в буфер контроллера, чтобы при отсутствии связи, часть критичных событий сохранялась, но там всего не более 100 сообщений храниться. Но, столько времени надо прописывать все эти перекрестные ссылки)))

Ответить