Страница 783 из 1042 ПерваяПервая ... 283683733773781782783784785793833883 ... ПоследняяПоследняя
Показано с 7,821 по 7,830 из 10414

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #7821
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Что может быть проще чем одна строка кода в любом месте ПЛЦ_ПРГ?
    Var_to_HMI:=Var_from_Modbus;
    где обе переменные прописаны (объявлены) в конфигурации ПЛК в соответствующих регистрах\портах.

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

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Что может быть проще чем одна строка кода в любом месте ПЛЦ_ПРГ?
    ну ради эксперимента можно в слейв вставить мастера или наоборот, главное нужно документацию тщательнее читать и по форуму искать похожие темы
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #7823

    По умолчанию

    Спасибо, я так и сделал.
    Думал может есть вариант обойтись одной переменной.

  4. #7824

    По умолчанию

    Здравствуйте, кто нибудь знает какой протокол по умолчанию у ТРМ-32 и ТРМ-202?Modbus ASCII,Modbus RTU или может быть OWEN?

  5. #7825

    По умолчанию

    Здравствуйте!
    Вопрос конечно глупый но уточнить надо.
    Перевожу старый код программы к одному языку ST так как он написан на разных языках. Так вот в старом коде увидел следующее:
    В контроллер (slave) с панели (master) передаются уставки и сохраняются в RETAIN.

    R1:word; (* переменная уставки в контроллере*)
    new1:word; (* переменная уставки с панели*)
    -/-/-/-/-/-/-
    IF R1 <> new1 then
    R1:=new1;
    END_IF;

    Из данного примера видно что 2 уставки сравниваются, и если не равны то присваиваем новое значение.
    Можно же напрямую передать значение с панели сразу в переменную RETAIN. Примерно так:

    R1 AT %QW7.1.0:word; (* переменная уставки в контроллере*)

    Может я чего-то не до понял? )))
    Заранее благодарен.

  6. #7826
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,838

    По умолчанию

    Цитата Сообщение от Shade876 Посмотреть сообщение
    Здравствуйте!
    Вопрос конечно глупый но уточнить надо.
    Перевожу старый код программы к одному языку ST так как он написан на разных языках. Так вот в старом коде увидел следующее:
    В контроллер (slave) с панели (master) передаются уставки и сохраняются в RETAIN.

    R1:word; (* переменная уставки в контроллере*)
    new1:word; (* переменная уставки с панели*)
    -/-/-/-/-/-/-
    IF R1 <> new1 then
    R1:=new1;
    END_IF;

    Из данного примера видно что 2 уставки сравниваются, и если не равны то присваиваем новое значение.
    Можно же напрямую передать значение с панели сразу в переменную RETAIN. Примерно так:

    R1 AT %QW7.1.0:word; (* переменная уставки в контроллере*)

    Может я чего-то не до понял? )))
    Заранее благодарен.
    Абсолютно ВСЕ переменные в слейве являются RETAIN!
    По этому совершенно правильно
    R1 AT %QW7.1.0:word; (* переменная уставки в контроллере*)

    Причем, переменную R1 больше нигде не нужно объявлять, она уже через объявление в конфигурации будет глобальной.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7827

    По умолчанию

    Всем привет! У меня из панели, читается реальное время тремя WORD ( час, мин, сек) в системе HEX (шестнадцатиричная), а в PLC - время работы считается тремя WORD ( час, мин, сек), в DEC (десятичной системе).
    Мне надо сравнивать время из панели со временем из PLC, секунды с секундами, минуты с минутами и т. д.

    Вложение 49528

    Как просто, желательно в 1-2 строки на языке ST перевести отдельно секунды, минуты и часы из системы HEX в систему DEC ?

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

    По умолчанию

    kondor3000, а можно глупый вопрос ? откуда у вас вообще секунды и минуты больше 60 ? какое-то новое измерение времени ?

  9. #7829

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    kondor3000, а можно глупый вопрос ? откуда у вас вообще секунды и минуты больше 60 ? какое-то новое измерение времени ?
    Это реальное время из панели СП310-Р, из 33, 34 и 35 системных регистров, в панели отражается в HEX, 12 час, 56 мин, 59 сек, а в PLC в системе DEC
    выходит 18 час, 86 мин , 89 сек.
    Мне надо это сделать в программе и быстро 1-2 строками.

    Поэтому и спрашиваю: Как просто, желательно в 1-2 строки на языке ST перевести отдельно секунды, минуты и часы из системы HEX в систему DEC ?

  10. #7830

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    foo := 16#59;
    bar := STRING_TO_WORD(CONCAT(WORD_TO_STRING(SHR(foo, 4)), WORD_TO_STRING(foo AND 16#F)));
    Спасибо за ответ, но мне не очень понятно foo := 16#59; это число 59 в 16-ричном формате?

    bar := STRING_TO_WORD(CONCAT(WORD_TO_STRING(SHR(foo, 4)), WORD_TO_STRING(foo AND 16#F))); а тут не понятно что за F

Страница 783 из 1042 ПерваяПервая ... 283683733773781782783784785793833883 ... ПоследняяПоследняя

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

Ваши права

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