Доброго времени!
Можно ли общаться с ПЛК110 М02 по протоколу DF1?
Что то не получается связаться с Allen Bradley(((
Пытаюсь через стандартный 232.
Честно говоря я пока и не понял что такое этот DF1
Может кто подскажет где найти описание этого DF1?
Доброго времени!
Можно ли общаться с ПЛК110 М02 по протоколу DF1?
Что то не получается связаться с Allen Bradley(((
Пытаюсь через стандартный 232.
Честно говоря я пока и не понял что такое этот DF1
Может кто подскажет где найти описание этого DF1?
TV13M ну вы барин вааще офигели . на сайте Rocwell Automation можно найти описание протокола на английском, вот только прочитать его с ПЛК110 вам придется попотеть изрядно. С одной стороны протокол описан, с другой стороны очень многообразен и со своими фишками. Например контрольная сумма может быть 1-но байтовой BCC а может быть 2-х байтовой CRC. байт 0х10 (DLE) дублируется, если попадается в блоке данных, при этом не участвует в расчете BCC или CRC и т.д... хотя в общем-то вполне логичный протокол.
1770-rm516_-en-p.pdf - ищите и обрящите данный файл.
я драйвер для Scada делал и то, реализовал только по одной функции чтения и записи из протокола. ПЛК ML1400
Всем здравствуйте!
Прошу сильно не кидать камнями.
Опрашиваю модуль по rs-485, запрос делаю строкой и беру все регистры, в структуре "modul_1" прописываю порядок регистров в строке.
Далее в программе в массив "MVA_1" передаю строку запроса "mva_1_string".
В массив D1[1]:=MVA_2^.two_1; таким обзором можно занести нужные мне данные.
Но у меня вопрос как можно реализовать проход по массиву "MVA_1" циклом и выбрать только нужные данные например "two_1, two_2, two_n"
--------в структуре
TYPE modul_1 :
STRUCT
one_1:INT;
two_1:INT;
three_1:INT;
four_1:INT;
five_1:REAL;
(* 2 *)
one_2:INT;
two_2:INT;
three_2:INT;
four_2:INT;
five_2:REAL;
(* n *)
one_n:INT;
two_n:INT;
three_n:INT;
four_n:INT;
five_n:REAL;
END_STRUCT
END_TYPE
--------в программе
VAR
MVA_1: POINTER TO modul_1;
D1: ARRAY [1..8] OF INT ;
END_VAR
--------
MVA_1:=ADR(mva_1_string); (* mva_1_string запрос всех регистров по rs-485 с модуля *)
D1[1]:=MVA_1^.two_1;
Всем Привет!
Объясните пожалуйста.
Произвожу опрос МВА8 4,5 регистра.
Данные из 4,5 регистра измерений передаются в формате 1,878787е+009.
В структуре ставил тип WORD и REAL не помогло.
Пробовал все преобразования но не смог получить величину температуры.
Зависит от того, чем Вы опрашиваете. Укажите ПО.
переставить слова местами, проверить адреса регистров.
Спасибо всем большое.
Еще вопросик.
Каждому элементу массива соответствует своё n№.
Подскажите как сделать например чтоб при DAT[2] выводилось TRUE в n2, при DAT[3] выводилось TRUE в n3.
Можно ли в кодесис вывести нужную переменную?
Выбором CASE это я знаю что возможно, может есть вариант по проще. )))
VAR
DAT: ARRAY [1..8] OF INT;
n1,n2,n3,n4: BOOL;
i:INT;
----------------
FOR i := 1 TO 4 DO
IF DAT[i] <>0 THEN
n(???):=TRUE; (поставить номер переменной )
END_IF;