PDA

Просмотр полной версии : ПР200 и ПЛК110 Синхронизация адресов.



HEMI
07.02.2020, 13:21
Всех приветствую! Есть один вопрос: У меня написана программа в ПР200 и ПР связана с ПЛК110. ПР как slave. Нужно считывать с ПР входящие показания температуры, состояние задвижки, уставку температуры, и гистерезис. Первые 4 регистра заняты двумя переменными FLOAT по 2 регистра на входную и выходную величину температуры. После идёт INT (Уставка). Адреса первого FLOAT 512-513, второго 514-515. За тем INT 516. В ПЛК +1 к каждому адресу. То есть: 513-514, 515-516, и 517. ПЛК не видит уставку. Поменяли адрес в ПРке на 517, и ПЛК всё увидел. С чем это связано? Подскажите пожалуйста.

capzap
07.02.2020, 13:25
а кто посоветовал прибавлять единицу к адресу?

HEMI
07.02.2020, 13:35
а кто посоветовал прибавлять единицу к адресу?

Инженеры. Поскольку передача FLOAT идёт младшим битом вперёд.

melky
07.02.2020, 13:44
ага, и вы читаете половину одного float и половину второго....

HEMI
07.02.2020, 13:56
ага, и вы читаете половину одного float и половину второго....

Ну когда поставили первый адрес в ПЛК "512", показания температуры исчезло. И в показаниях было огромное число.

capzap
07.02.2020, 13:58
Ну когда поставили первый адрес в ПЛК "512", показания температуры исчезло. И в показаниях было огромное число.

вот и надо менять байты местами чтоб было читаемое, но ни как не адреса регистров смещать

HEMI
07.02.2020, 14:06
вот и надо менять байты местами чтоб было читаемое, но ни как не адреса регистров смещать

Сейчас ещё раз посмотрел проект. Там передача данных идёт Старшим Байтом вперёд. И как мне объяснили: "Если изменить в ПРке передачу данных на "Младшим Байтом вперёд", может возникнуть проблема с INTовыми переменными". Никак не могу составить полную картину проблемы.

capzap
07.02.2020, 14:09
оставте в покое ПР, она как слейв просто передает данные. В плк если через конфигурацию, в УМД в параметрах для начала смените workmode с трейса на нативе или наоборот. Если не полусчиться, тогда придется в коде менять самостоятельно байты у тех переменных которые отображают не верные значения

melky
07.02.2020, 14:13
HEMI наверное просто надо было переставить регистры местами на принимающей стороне.
з.ы. не уверен, что вообще для slave эти галочки работают, насколько помню порядок байт всегда 2301 для режима slave.
Эти галки важны в режиме Master.

HEMI
07.02.2020, 14:17
оставте в покое ПР, она как слейв просто передает данные. В плк если через конфигурацию, в УМД в параметрах для начала смените workmode с трейса на нативе или наоборот. Если не полусчиться, тогда придется в коде менять самостоятельно байты у тех переменных которые отображают не верные значения

Сейчас все переменные показывают правильные значения. Единственное что меня интересует: почему для FLOAT нужен был сдвиг адреса в +1, а для INT нет?
Но кажется до меня дошло...

HEMI
07.02.2020, 14:19
HEMI наверное просто надо было переставить регистры местами на принимающей стороне.
з.ы. не уверен, что вообще для slave эти галочки работают, насколько помню порядок байт всегда 2301 для режима slave.
Эти галки важны в режиме Master.

Понял. Н сколько я сейчас понимаю, инженер наш сбился с счёта адресов...