PDA

Просмотр полной версии : Как считать или записать переменную типа bool по modbus ПЛК110



Regedit
24.07.2019, 18:30
Добрый день! Я уже задавал этот вопрос в теме вопрос ответ, но не хочется там продолжать, потому что вопросы еще остались. Вырезка оттуда

В:Добрый день! Подскажите! Как добавить в проект булевую переменную устройства модбас? Создаю универсальное устройство, далее там можно создать переменную типа word, Dword, byte.... Как здесь bool найти?)
О:Никак. Создаете регистр 8bits , там откроется возможность управлять отдельными битами. Либо применять конструкцию Var.0--Var.15, где Var - переменная типа WORD или регистр 2byte, а цифры после точки - номер бита.

С кодесисом мало знаком, но моей логике не поддается как это может быть правдой?

У меня есть проект на ПЛК110, он должен иметь связь со сторонним устройством, в который доступа у меня нет, выдали карту переменных, там есть битовые переменные для чтения и для записи, т.е. они не запакованы ни в байт ни в WORD ни в DWORD. В голове не укладывается, что в кодесисе нет битов, только байты, хотя биты в проекте используются. Подскажите, как можно все-таки опросить такие переменные, устройства под рукой нет, в командировке не хочется сильно облажаться.

IVM
24.07.2019, 18:46
При помощи ПЛК110 это сделать невозможно ни через конфигуратор ни через библиотеки. Что еще есть в проекте кроме ПЛК110 и стороннего устройства ?

Валенок
24.07.2019, 21:37
При помощи ПЛК110 это сделать невозможно ни через конфигуратор ни через библиотеки...
Как это ? 8(


выдали карту переменных, там есть битовые переменные для чтения и для записи, т.е. они не запакованы ни в байт ни в WORD ни в DWORD.
функции 1,2,5,15 ?

Sulfur
25.07.2019, 06:01
логике не поддается как это может быть правдой?
Ну вот как-то так:
43752
43753
43754
43755

Sulfur
25.07.2019, 08:08
В ПЛК-мастере можно организовать 8bit in\output module и N bit in\output module. Не видя карты девайса-слева трудно гадать.

melky
25.07.2019, 08:55
А у oscat разве нет библиотек для мастера, чтобы поддерживал Coils ?

Regedit
25.07.2019, 10:35
Мне кажется, у ТС задача стоит в том что плк в качестве мастера, а Вы предлагаете вариант когда он слейв

Совершенно верно

Regedit
25.07.2019, 10:36
А можно поподробней? В каком виде вам карту показать?

Sulfur
25.07.2019, 14:53
Номера регистров булевых переменных слейва.

Regedit
25.07.2019, 15:02
1-7 на чтение и 1-7 на чтение/запись

melky
25.07.2019, 15:03
Вы по RS485-му объединяете мастера и какого-то слейва ?

Regedit
25.07.2019, 15:15
Ну хотелось бы, чтоб они смогли общаться

melky
25.07.2019, 15:25
Отличный ответ, ни да, ни нет. Спасибо.

Может поможет этот пример http://bvl.center/nastrojka-modbus.html

Ну и научитесь правильно изъяснять мысли и главное отвечать на поставленные вопросы.
Потому что для Modbus TCP работа с Coil реализована в oscat. Для RTU я там не нашел, а может плохо искал..

Regedit
25.07.2019, 17:06
Откуда я знаю что вы имеете ввиду под "объединяете"? Да и "объединяете" подразумевает уже какой-то результат, а у меня даже оборудования под рукой пока нет. Как спросили, так и ответил считаю. Используется Modbus RTU, за пример спасибо, по нему получается, что все таки байт надо опрашивать, надеюсь это работает.

melky
25.07.2019, 17:35
Ну суть вопроса была в ИНТЕРФЕЙСЕ связи, если это не заметно :)

Какой на байт ? внимательнее смотрите пример.

8 bit input module – регистр 0 (заняты регистры от 0 до 7);
8 bit output module – регистр 8 (заняты регистры от 8 до 15);

Что-то сдается неспроста человек написал про занятость регистров... Но проверить мне не на чем это предположение
Хотя где-то валялась плата, которая именно при помощи Coils управляется, но это надо ПЛК вынимать из работы... некогда.

И на команду посмотрите Force multiply Coils, что как бы намекает.

Sulfur
26.07.2019, 08:54
1-7 на чтение и 1-7 на чтение/запись

Не совсем понятно. Адресация перекрывается?

Валенок
26.07.2019, 20:04
Не совсем понятно. Адресация перекрывается?
Необязательно.
1-7 на чтение => ф 2
1-7 на чтение/запись => ф 1,5,15
Возможно. Но редкая птица.