Найти тему
Ты же инженер АСУ ТП

Для чего нужна перестановка байт в Codesys 2.3? Переменная Real

Оглавление

Случается, что разное оборудование, зачастую панель оператора с ПЛК по разному общаются между собой.

Приветствую всех, на связи Семен, делаю объект, и в который раз при обмене данными требуется перестановка байт. Напишу зачем и как это вылечить.

Как передать REAL и сделать энергонезависимым?

Сейчас работаю со связкой ПЛК100+Weintek MT8072iP.

Задача такая, панель является мастером, передаем данные по Modbus TCP, нужно записывать уставку с плавающей запятой, в моем случае температура.

Для того чтобы уставка не пропадала при обрыве питания, мне нужно занести в регистры панели, а с панели передать на ПЛК.

Делается это так:

Создаем переменную - температура - Float

-2

Заходим в объекты, передача данных(глобально).

-3

Создаем новый.

-4

Указываем откуда и куда будем передавать. Передаем на Slave ПЛК100.

Как поменять байты в регистре REAL?

Открываем Codesys 2.3.

Функция перекидывания байтов называем Swap_real.

-5

Применяем указатели для прямой адресации в области памяти, то есть из регистров напрямую вытаскиваем байты, меняем их между собой и обратно склеиваем.

-6

Так мы лепим функцию

-7

Так мы получаем результаты, на входе абра-кадабра, на выходе понятная температура 60,5 градусов.

На этом всё, друзья, с вами был автор канала.

С уважением, Гридин Семен.