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

Тема: Панели оператора СП270. Вопросы и ответы

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,188

    По умолчанию

    Цитата Сообщение от KoT'86 Посмотреть сообщение
    Вопрос в следующем... Как через элемент "Цифровой ввод" передать отрицательное значение по Modbus? Само отрицательное значение записывается в элементе, а вот передается в формате WORD, вследствие чего на ПЛК получаем значение 65535-30=65505 (-30 вводимое отрицательное число). Можно решить конфигурацией панели или преобразовывать в ПЛК?
    Ничего в панели преобразовывать не надо. Панель здесь ни причем.
    Просто протокол Modbus ничего не знает про какие-то там положительные или отрицательные числа, а оперирует шестнадцати битными регистрами. А что закодировано этими шестнадцатью битами, буквы, символы или цифры ему безразлично.
    Это дело программы в ПЛК как интерпретировать содержимое регистра. Для этого в КДС предусмотрены типы данных.
    Захват-1.png
    Для 16 битных типов данных в КДС существуют типы WORD, INT, UINT
    Захват-2.png
    Для без знаковых целых чисел это WORD и UINT (0..65535), а для целых чисел со знаком - INT(-32768..32767).
    У ПЛК в конфигурации Modbus Slave для модулей 2 byte используется тип данных WORD.
    А для чисел со знаком (тип INT) используется представление в дополнительном коде. Старший, 15 бит используется для указания знака числа. Если его значение равно 0, то в остальных разрядах записано положительное число, совпадающее с прямым кодом. По этому пока Вы вводите на экране числа от 0 до 32767 то в переменной в Modbus Slave увидите это же число. Но как только Вы введете отрицательное число, то в переменной в Modbus Slave увидите это число в дополнительном коде, например не "-30", а "65506".
    Однако это никак не влияет на результат использования такого числа в программе. Из-за неявного преобразования типов результаты арифметических операций и операции присваивания с использованием WORD вместо INT получаются правильными без дополнительных телодвижений.
    В принципе можно ничего нигде не преобразовывать. Но уж если очень хочется видеть при отладке программы "правильные" цифры, то используйте в программе не сами переменные, указанные в конфигурации Modbus Slave для модулей 2 byte, а другие, которые приведены к "правильному" типу
    Захват-3.png
    Последний раз редактировалось petera; 08.10.2015 в 04:38.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе СП3хх, СП270
    Ответов: 4220
    Последнее сообщение: 12.10.2026, 23:48
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. СПК 110 в качестве Панели оператора
    от GSM73 в разделе СПК1xx (архив)
    Ответов: 3
    Последнее сообщение: 14.03.2017, 00:42
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1xx (архив)
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17
  5. Ответов: 4
    Последнее сообщение: 27.10.2012, 22:12

Метки этой темы

Ваши права

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