Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Извлечение бита из слова

  1. #1

    По умолчанию Извлечение бита из слова

    А заходят ли разрабы сюда?

    Почему бы вам не сделать встроеннное извлечение бита из слова по протоколу MODBUS и наоборот? Ведь уже предполагается, что если мне нужен бит, то мне нужно дербанить слово. Вы СТОЛЬКО времени сэкономите людям. Почему в EB я просто указываю регистр с номером бита, например 10001:0, и уже читаю бит без дополниттельных усилий, а тут должен тратить огромное кол-во времени толко на заведение в систему внешних тегов? Хорошая SCADA - импортнул xls или csv - и готово. За 25 лет можно было сделать.
    Последний раз редактировалось BolshakovRV; 24.10.2026 в 13:17.

  2. #2

    По умолчанию

    Цитата Сообщение от BolshakovRV Посмотреть сообщение
    А заходят ли разрабы сюда?

    Почему бы вам не сделать встроеннное извлечение бита из слова и наоборот? Ведь уже предполагается, что если мне нужен бит, то мне нужно дербанить слово. Вы СТОЛЬКО времени сэкономите людям. Почему в EB я просто указываю регистр с номером бита, например 10001:0, и уже читаю бит без дополниттельных усилий, а тут должен тратить огромное кол-во времени толко на заведение в систему внешних тегов? Хорошая SCADA - импортнул xls или csv - и готово. За 25 лет можно было сделать.
    В смысле, там же есть. В динамике элементов выбираешь слова, а потом его бит... Если надо программу, то там а-ля кодесис, тоже как слово.бит работает...

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,593

    По умолчанию

    Мне кажется вы немного не понимаете работы ядра. Например взять CodeSys - value.5 мы берем 5-й бит. Это нормально в ST языке.

    А теперь возьмите другой язык программирования и упс, нет там такого. В C# нет возможности через точку получить бит. В javascript кажется тоже (сильно не копал)...
    А делать парсер строк для этого, да еще и для интеграции с языком, так это будет дольше и хуже.

    MS4D вроде тоже на NET написана, так что это и ей присуще.

    И если в EB сделали свой скриптовый язык или на чем оно написано позволяет так, и дали вам возможность использовать такое обращение к битам, еще не значит, что это правильно и так будет везде...

    з.ы. короче, смотреть надо в корень иногда

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,593

    По умолчанию

    10001:0 - аааа, блин, это у вас не из программирования, скорее это указание регистра и бита в настройке шаблона опроса с разделителем

    тут палка о двух концах. опрос 10001:0, 10001:1, 10001:2, 10001:3 будет один или четыре? я как-то использовал один шлюз и там это было масса запросов с подобной настройкой.
    Так как верхний уровень был мне недоступен, пришлось делать так, чтобы вверх отдавать 0 и 1 а не битовую маску.

    Если же видя такое все будет сгруппировано и будет один регистр - один запрос (ну или дальше в группе следующие регистры) то норм.... Но часто производители этим не заморачиваются...

  5. #5

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    В смысле, там же есть. В динамике элементов выбираешь слова, а потом его бит... Если надо программу, то там а-ля кодесис, тоже как слово.бит работает...
    В EB достаточно указать в словаре адресов. Можно подробнее про Ваш метод, что за "динамика элементов"?


    бит.png


    Цитата Сообщение от melky Посмотреть сообщение
    будет один или четыре?
    Регистры просто читает пачками, количеством не больше указанным в настройках. Трассировкой не понять, как он запрашивает, запросил он следующим циклом или это второй раз за цикл?

    Как пишет? Можно, конечно, одновременно два бита активировать, но мне лень макрос писать. Не сегодня.
    Последний раз редактировалось BolshakovRV; 24.10.2026 в 11:29.

  6. #6

    По умолчанию

    Цитата Сообщение от BolshakovRV Посмотреть сообщение
    В EB достаточно указать в словаре адресов. Можно подробнее про Ваш метод, что за "динамика элементов"?


    бит.png




    Регистры просто читает пачками, количеством не больше указанным в настройках. Трассировкой не понять, как он запрашивает, запросил он следующим циклом или это второй раз за цикл?

    Как пишет? Можно, конечно, одновременно два бита активировать, но мне лень макрос писать. Не сегодня.
    Ну например элемент, хотите менять цвет по биту слова. В свойства цвета перетаскиваете слова, и там выбираете какой бит за какой цвет отвечает... Примерно так.

    А в программе на st как в обычном кодесисе, слово.бит... Или что вы хотите?

  7. #7

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Ну например элемент, хотите менять цвет по биту слова. В свойства цвета перетаскиваете слова, и там выбираете какой бит за какой цвет отвечает... Примерно так.

    А в программе на st как в обычном кодесисе, слово.бит... Или что вы хотите?
    Я хочу, чтобы я в настройках ModbusTCP Device указывал только требуемый мне бит и присваивал ему тег. И далее работал с этим тегом. Я хочу в таблицу адресов заглянуть только один раз. Более того, я хочу сформировать таблицу в Excel в "полуавтоматическом" режиме. Это экономит колоссальное количество времени и минимизирует ошибки. А мне приходится читать слово, распаковывать слово в программе, присваивать потом объявленным в "Объектах" тегам полученные биты предлагаемым разработчиком МС способом - перетаскиванием. Что в итоге лучше делать в ST, текст которого лучше формировать в Excel опять же. Вот еще объём работы. При немалом количестве таких позиций впереди видится только мрак и желание искать другую систему. Которые по факту оказываются еще более примитивными.

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    и там выбираете какой бит за какой цвет отвечает...
    Вроде полезно, но каким образом? Там можно выбрать только true/false, если переменная булевая, если число - то только значение, ниаких битов я там не вижу.

    word.png

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,593

    По умолчанию

    Я хочу, чтобы я в настройках ModbusTCP Device
    это Coils регистры - их есть у вас?

    Если это Холдинги или Инпутсы и там битовые маски, то увы, просто не будет нигде. Хотя если устройства однотипные - ну скажем Кондиционеры одной фирмы с одинаковыми картами регистров и там запихнуты биты, то думаю можно найти решения в разных системах.

    А если вы настраиваете с нуля разнотиные устройства, то увы. Это практически везде будет неудобно.

  9. #9

    По умолчанию

    Какая нафиг разница какое это устройство, если речь о MODBUS? Я не указал в теме, виноват. От устройства зависит только порядок байт в слове, который настраивается в свойствах протокола и может быть учтён при распаковывании.

    Тем более, я нигде не встречал какой-то другой последовательности бит в WORD, отличной от привычной.
    Последний раз редактировалось BolshakovRV; 24.10.2026 в 13:17.

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,593

    По умолчанию

    Для Modbus состояние 0 и 1 это Coils регистры.
    Если вы или производитель запихнул bool в Holding или Inputs регистры это не означает, что это норма, и как вы их там планируете выкапывать, полностью зависит от среды, возможности ее настроек, функционала, языка ядра и т.д.

    Другой вопрос, сделали это удобным или нет.
    В MS4D есть FBD и ST. И там и там можно вытаскивать через точку из переменной.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 16
    Последнее сообщение: 27.02.2018, 14:01
  2. Извлечение USB из СПК207
    от arlyn в разделе СПК2xx (архив)
    Ответов: 3
    Последнее сообщение: 27.02.2014, 07:57
  3. Извлечение из архива
    от electronic в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 19.03.2013, 13:54
  4. Извлечение данных из буфера обмена
    от 5888055 в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.10.2012, 09:40
  5. ключевые слова St
    от Jeck в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 29.12.2008, 15:08

Ваши права

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