Страница 934 из 1043 ПерваяПервая ... 4348348849249329339349359369449841034 ... ПоследняяПоследняя
Показано с 9,331 по 9,340 из 10427

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

  1. #9331
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,278

    По умолчанию

    Цитата Сообщение от Sandkon Посмотреть сообщение
    В ОПС все четко, в кодесис со сдвигом по кругу
    Интересен этап выяснения что дело не в бобине.
    Вам выше Cs-Cs норм советы дал. По пунктам. Особенно б)

  2. #9332

    По умолчанию

    Цитата Сообщение от Sandkon Посмотреть сообщение
    исправленные файлы(добавил файл конфигурации овенопс)
    Скрин не получается загрузить но сдвиг остается :данные с Давление диф по третьему адресу в ПЛК .Почему так пока объяснений нет
    Конфигурация читает регистры по одному. Попробуйте прочитать все регистры группой, с помощью String 1 Групповой опрос.jpg
    ОРС сервер читает тоже группой.
    Файл проекта выкладываю
    Вложения Вложения

  3. #9333

    По умолчанию

    А что-то я не понял... А что? Если в комментариях к коду Arduino поменять слово "10" на "06" - то Ардуино начнёт понимать команду Modbus 0x06?
    Код:
      //общее количество регистров для функции 3 и 06 разделяет тотже самый массив регистров
      //т.е. то же самое адресное пространство
    };
    unsigned int holdingRegs[HOLDING_REGS_SIZE]; // функции 3 и 06 массив регистров
    По имени включаемого файла <SimpleModbusSlave.h> нарыл ссылки на используемую библиотеку:
    https://github.com/kolod/Arduino-Simple-Modbus-Slave
    Там прям в ReadMe (https://github.com/kolod/Arduino-Sim...ster/README.md) написано так:
    Features
    To keep it simple and to reduce memory consumption, only the two following Modbus functions are supported:
    • read holding registers (0x03)
    • write multiple registers (0x10)
    Так какого же ж фига писать в Ардуинку функцией 6, а не 10-то?!

    И ещё вот что. В попробуй-ка увеличить интервал между запросами. Это в дереве конфигурации ПЛК в настройках интерфейса.
    Код в Ардуинке написан на гадких Delay(), а ПЛК110 - это скоростной пулемёт в запросах. Ардуинка может просто не справляться.
    FramingTime.gif

    О!! А ещё ж порядок байт может быть другой.
    Я ещё и ещё раз советую начать с того, чтобы регистры возвращали простые числа длиной в 4 знака, типа "1111", "2222".
    Это позволит разобраться с порядком и регистров и байт. А потом уже надо накручивать логику.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  4. #9334

    По умолчанию

    Всем спасибо за участие. С чтением группой попробую позже. Перехожу к связке Lectus 3.10-SCADA 3.12 .Похоже там тоже не все гладко.

  5. #9335

    По умолчанию

    2023-01-14_09-33-00.png C String работает четко.

  6. #9336

    По умолчанию

    Цитата Сообщение от Sandkon Посмотреть сообщение
    2023-01-14_09-33-00.png C String работает четко.
    Только у вас Старт не нажат, в переменных 0 везде.
    И ещё удалите повторяющуюся переменную Ves из объявлений (Ves уже есть в конфигурации Слейва). И все переменные можно присвоить напрямую, без промежуточных Pa, Pd, T и подобных.
    Последний раз редактировалось kondor3000; 14.01.2023 в 11:14.

  7. #9337

    По умолчанию

    А можно узнать у гуру ST?
    ---
    Для чего после END_IF многие в своих разработках ставят символ ;?
    Или ткните носом - буду признателен за науку.

  8. #9338

    По умолчанию

    Цитата Сообщение от west Посмотреть сообщение
    А можно узнать у гуру ST?
    ---
    Для чего после END_IF многие в своих разработках ставят символ ;?
    Или ткните носом - буду признателен за науку.
    Ставят новички, прочитавшие, что строка должна заканчиваться ;
    Но после END_IF его ставить не надо.

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ставят новички, прочитавшие, что строка должна заканчиваться ;
    Но после END_IF его ставить не надо.
    Я не новичек и делаю это всегда, компилятор бывает чудит, не всегда но страховка не мешает
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #9340

    По умолчанию

    Цитата Сообщение от west Посмотреть сообщение
    А можно узнать у гуру ST?
    ---
    Для чего после END_IF многие в своих разработках ставят символ ;?
    Или ткните носом - буду признателен за науку.
    Потому что ST в TIA Portal выдаёт ошибку при его отсутствии

Страница 934 из 1043 ПерваяПервая ... 4348348849249329339349359369449841034 ... ПоследняяПоследняя

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

Ваши права

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