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

Тема: 2 переменные word в 1 lint

  1. #1

    По умолчанию 2 переменные word в 1 lint

    Всем доброго времени суток.
    Вопрос такой. Передаю из ардуинки long integer. двумя переменными word. как их сложить обратно в кодесисе? ))

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

    По умолчанию

    в CodeSys есть DWORD

  3. #3

    По умолчанию

    Ну на счет переменных я в курсе. Интересует команда преобразования. по типу такой: word_to_lint.
    Сейчас складываю так:
    test3:=(test1*65536)+test2;
    test4:=((65536*65536)-test3)*(-1);
    IF test1>32768 THEN test5:=test4; ELSE test5:=test3; END_IF;
    где test1,2. входные значения.
    Последний раз редактировалось stumex; 10.04.2017 в 08:09.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от stumex Посмотреть сообщение
    Ну на счет переменных я в курсе. Интересует команда преобразования. по типу такой: word_to_lint.
    Как вариант, в библиотеке CAA Memory есть функция PackWordsToDword. На выходе, соответственно, DWORD, и его уже конвертируем с помощью DWORD_TO_DINT.

  5. #5

    По умолчанию

    Правильно ли я понял, что перед Вами стоит следующая задача:
    по сети передаются переменные типа word, которые необходимо объединить в long int (DINT в CODESYS)?

    Если так, то в документе СПК. Протокол Modbus доступном в ветке форума http://www.owen.ru/forum/showthread.php?t=23897
    есть п. 4.4 Преобразование данных (REAL, DWORD, STRING) в котором описаны все возможные способы "склейки" данных в CODESYS.

  6. #6

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Правильно ли я понял, что перед Вами стоит следующая задача:
    по сети передаются переменные типа word, которые необходимо объединить в long int (DINT в CODESYS)?

    Если так, то в документе СПК. Протокол Modbus доступном в ветке форума http://www.owen.ru/forum/showthread.php?t=23897
    есть п. 4.4 Преобразование данных (REAL, DWORD, STRING) в котором описаны все возможные способы "склейки" данных в CODESYS.
    Спасибо! Помогло)

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

    По умолчанию

    Блин, а просто поставить два регистра рядом в нужной последовательности а считать из памяти просто dword уже не судьба ? если не ошибаюсь, то CDS это должен позволять. Просто через массивы например.

  8. #8

    По умолчанию

    Цитата Сообщение от stumex Посмотреть сообщение
    Всем доброго времени суток.
    Вопрос такой. Передаю из ардуинки long integer. двумя переменными word. как их сложить обратно в кодесисе? ))
    Товарищи, доброго времени суток! Прошу прощения за дилетантский вопрос. я просто только начинаю разбираться с codesys и пытаюсь понять как это работает. Есть 2 переменные типа WORD из них необходимо сделать одну переменную типа DWORD. пожалуйста объясните как можно это сделать.
    Заранее благодарю.

  9. #9
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Самый простой вариант - добавить в проект библиотеку CAA Memory и использовать ее ФБ PackWordsToDword:

    Код:
    VAR
    	wLow: 	WORD := 16#851F;
    	wHigh: 	WORD := 16#4133;
    	
    	dwVar:  DWORD;
    END_VAR
    
    
    dwVar := MEM.PackWordsToDword(wHigh, wLow);

Похожие темы

  1. Перевод WORD в REAL в CFC.
    от Newcomer в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 16.01.2016, 10:11
  2. СМИ2, int/word, показывает от 256
    от Туман в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 26.02.2014, 10:37
  3. WORD <-> BOOL
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 08.09.2013, 16:12
  4. Word to bytes
    от Scream в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 06.09.2013, 14:21
  5. Ответов: 13
    Последнее сообщение: 13.10.2008, 13:13

Ваши права

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