Показано с 1 по 10 из 10

Тема: Разные переменные в одном канале регистров

  1. #1

    По умолчанию Разные переменные в одном канале регистров

    Здравствуйте! Помогите пожалуйста грамотно разделить переменные. Есть канал для чтения допустим 10 real переменных, соответственно это 20 регистров. Создаю union из переменной типа real и массива [0..1] of word. Есть еще bool переменные. Будет ли корректным создать канал не из 20 регистров, а из 22 регистров. Первые 2 регистра будут зарезервированы для чтения bool переменных. При этом отдельным каналом будет сконфигурирована запись во 2-й регистр bool переменных. Я хочу массив объединения real_ указать в канале из 22 регистров и в 1-м и 2-м регистре указать в битовых каналах сами bool переменные. Реальные значения с плавающей точкой будут считаны начиная со 2-го элемента массива. Правильно ли это? И все это ради одно запроса вместо 2-х.

  2. #2

    По умолчанию

    СПК, как понимаю, это слэйв... Делайте как вам удобней. Аы для мастера хотите тепличных условий? Но мастера бывают разными. Если будет много регистров (больше 127 вроде), то он все равно сделает 2 массовых опроса. Тем более некоторые читают только активные на дисплее регистры, делая окна в опросах. Не забивайте голову, главное учитывайте смещение, ну вы я смотрю в курсе.

  3. #3

    По умолчанию

    СПК будет мастером, а ПЛК 150/160 будут слейвами. Для ПЛК конфигурация будет 8bit, 8bit, 8bit, 8bit, float, ..., float. Просто я думал с одного и того же канала будут записаны float переменные в массив и bool переменные, не будет ли конфликта? А про разбивку на 2 опроса - спасибо за наводку. С помщью Modbus Poll я думаю смогу отследить эту ситуацию. Благодарю!

  4. #4

    По умолчанию

    Ну это тоже плк, где вы сформируете регистры сами. И модбас по идее не знает, что у него за формат данных, он передает ворд'ы. А мастер сам их должен конвертировать в понятный формат. Только тогда лучше читать ворд'ы, а вспомогательной POU конвертировать. Я так делаю.

  5. #5

    По умолчанию

    Вы работаете с указателями? Типа в 0-й байт пишете по адресу с 1-го ворда, а во 2-й байт пишете по адресу со 2-го ворда? В итоге сформирована real переменная? Тогда можно и по-отдельности извлекать и bool переменные... Я видел пример и сам так делал по перестановке байт ABCD в CDAB.

  6. #6

    По умолчанию

    Цитата Сообщение от MichailG Посмотреть сообщение
    Вы работаете с указателями? Типа в 0-й байт пишете по адресу с 1-го ворда, а во 2-й байт пишете по адресу со 2-го ворда? В итоге сформирована real переменная? Тогда можно и по-отдельности извлекать и bool переменные...
    В данном случае указатели не нужны, читаете массив WORD и из массива берёте либо маску бит, либо 2 переменные WORD, для получения FLOAT.
    Тоже самое и с записью, например в [0] и [1] WORD упаковываете по 16 бит, FLOAT раскладываете на 2 WORD и складываете в массив,
    например в [2] и [3]
    Последний раз редактировалось kondor3000; 20.01.2025 в 19:27.

  7. #7

    По умолчанию

    Можно пожалуйста пример, понять не могу как это сделать?

  8. #8

    По умолчанию

    Цитата Сообщение от MichailG Посмотреть сообщение
    Можно пожалуйста пример, понять не могу как это сделать?
    Что конкретно не понятно? Как массив регистров сделать для чтения или как разложить на 2 WORD ?

    Чтение и запись по 16 регистров 1 Массив 16 чтения и 16 записи.jpg Соотнесение 1 Соотнесение.jpg Упаковка, распаковка и REAL 1 Биты и REAL.jpg
    Последний раз редактировалось kondor3000; 20.01.2025 в 20:00.

  9. #9

    По умолчанию

    Цитата Сообщение от MichailG Посмотреть сообщение
    Можно пожалуйста пример, понять не могу как это сделать?
    Создаете массив из количества ворд равному количество реал * 2 плюс минимальное целое от количества бит / 32 * 2. Эти ворды соотносите с таблицей регистров. А где нибудь в программе биты это ворд.х, а реалы это ваши юнионы. Можно многими способами, но я так делаю.

  10. #10

    По умолчанию

    Спасибо, вроде ясно, завтра буду пробовать.

Похожие темы

  1. 2трм1 на 2ом канале постоянно показывает off...
    от кема в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 18.12.2023, 17:56
  2. разные переменные на один вход умножения
    от Nerion в разделе Программируемые реле
    Ответов: 4
    Последнее сообщение: 03.07.2018, 12:21
  3. Виртуальный СОМ-порт на GPRS-канале
    от Hemann в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 12.08.2015, 18:08
  4. мониторинг параметров воздуха в канале
    от Гога в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 22.06.2015, 18:36
  5. Сетевые переменные в одном проекте
    от Солнечный заяц в разделе СПК2xx (архив)
    Ответов: 5
    Последнее сообщение: 27.07.2012, 14:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •