Функция определения связи со станцией ЕТ200М
Необходимо указать входной параметр - диагностический адрес станций в 16 формате (смотри в HW Config, на выходе привязать к биту стыковки, а в дальнейшем бит стыковки используем по разумению (ну там для транспаранта, или в логике какой нибудь например)
У станции в HW config два диагностических адреса, возьмем тот который принадлежит самой станции в целом так же внутри есть процедура активации DP slave при обнаружении связи с ним (к вопросу обновления таблицы выходов станции)
Блок для тестинья связи DP слэйв-модуля (станции) с ЦПУ-мастером.
Для этого заюзаем SFC13, которая позволит нам читать диагностические данные slave-модуля, возвращаемые в переменной RECORD. В хелпе (см. Бергера) написано, что минимальная область памяти, куда пишется диагностическая инфа - 6 байт (максимальная - 244). Не верь этому. Для ЕТ-хи минимум 10 байт (подобрано
опытным путем).
SFC13 (DPNRM_DG) возвращает диагностическую инфу в переменной RECORD, которую
нам надо перегнать в соответствующую область памяти. Узнать из той инфы можно много, но нас интересует только линк. Линк отражается в 0-вом бите младшего байта диагностической инфы. Если бит установлен, то связь потеряна. Если бит в нуле - то все Ок. На каждую DP-станцию - свой вызов SFC13, которая узнает, какую станцию ей мониторить по адресу, передаваемому в LADDR.
|