Страница 841 из 1041 ПерваяПервая ... 341741791831839840841842843851891941 ... ПоследняяПоследняя
Показано с 8,401 по 8,410 из 10404

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

  1. #8401

    По умолчанию

    Цитата Сообщение от W1nn1ep00h Посмотреть сообщение
    Спасибо. Я понял, про что вы. Вы предлагаете свой вариант получения значений, с помощью конфигурации, без пользования библиоткой modbus.lib и считывая все значения. Просто я смотрю уход от стандартной конфигурации и рассматриваю все варианты , какие есть в примерах на форумах. В том числе и по протоколу ОВЕН. Кстати, почему вы так о нем отзываетесь("оно вам надо")?
    По сути, вы предлагаете, тоже самое, что считать функцией MB_RD_HOLD_REGS все 48 регистров, но заменив опрос библиотекой, с помощью введения строковых переменных в конфигурацию.
    Я предлагаю попробовать все варианты и ничего не навязываю, когда прочитаете отличия проколов, сами всё поймёте) Лично я потратил бы время с пользой, изучив что нибудь полезное))) А по поводу Стрингов, делал тестирование, естественно на тяжёлой программе с кучей REAL в обмене, у меня получилось, что обмен через библиотеку чуть хуже и менее стабилен. Если сомневаетесь, можете проверить.
    Последний раз редактировалось kondor3000; 18.01.2022 в 12:53.

  2. #8402

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Я предлагаю попробовать все варианты и ничего не навязываю, когда прочитаете отличия проколов, сами всё поймёте) Лично я потратил бы время с пользой, изучив что нибудь полезное))) А по поводу Стрингов, делал тестирование, естественно на тяжёлой программе с кучей REAL в обмене, у меня получилось, что обмен через библиотеку чуть хуже и менее стабилен. Если сомневаетесь, можете проверить.
    Спасибо. Еще последний вопрос Polling Time рекомендуемое сколько ставить в конфигурации?

  3. #8403

    По умолчанию

    Цитата Сообщение от W1nn1ep00h Посмотреть сообщение
    Спасибо. Еще последний вопрос Polling Time рекомендуемое сколько ставить в конфигурации?
    У меня в примере стоит 100 мс для МВ8А (быстрее нет смысла), а для МВА-8АС можно 10 мс,
    для связи с панелью 10мс везде (UMD для чтения и UMD записи) Скорость естественно 115200, 8N1, RTU
    Последний раз редактировалось kondor3000; 18.01.2022 в 17:58.

  4. #8404

    По умолчанию

    Приступил к изучению конфигурирования ПЛК. Задача: ПЛК должен быть Slave и по Ethernet соединяется с компьютером (Master). В компьютере стоит готовая программа, умеющая работать с контроллером (Slave) по протоколу Modbus RTU.
    Для примера, я сформировал 3 рабочих слова в памяти ввода-вывода контроллера: Rab_Var_0, Rab_Var_1 и Rab_Var_2.
    Ex1.png
    Вопрос: 1. Если внешним компьютером читать эти три регистра, то это адреса 0х00, 0х01 и 0х02?
    2. В эти регистры можно записывать и читать данные? Меня насторожило название %QW7..
    3. А что делать, если мне требуется 20 - 30 подобных рабочих слов? Может ограничится просто (!) настройкой контроллера на Slave , без распределения рабочих слов в памяти ввода-вывода и осуществлять внешним компьютером запросы к адресам переменных программы? При этом объявить переменные, например, вот так:

    VAR_GLOBAL
    ...
    MW15 AT %MW15: WORD; (* Номер последнего пресеченного датчика АО1 *)
    MW16 AT %MW16: WORD; (* Номер последнего пресеченного датчика АО1 *)
    MW28 AT %MW28: WORD; (* Копирование команд АО в 106 и 108 0-нет 1-да*)
    MW31 AT %MW31: WORD; (* Состояние KL1 *)
    MW32 AT %MW32: WORD; (* Состояние KL2 *)
    MW33 AT %MW33: WORD; (* Состояние KL3 *)
    MW60 AT %MW60: TIME; (* Значение времени (в мин) для Состояние KL1 *)
    MW62 AT %MW62: TIME; (* Значение времени (в мин) для Состояние KL2 *)
    MW64 AT %MW62: TIME; (* Значение времени (в мин) для Состояние KL3 *)
    MW70 AT %MW70: WORD; (* Команда для гор. АО1 *)
    MW71 AT %MW71: WORD; (* Команда для верт. АО1 *)
    MW72 AT %MW72: WORD; (* Текущее состояние АО1 *)
    MW73 AT %MW73: WORD; (* Команда для гор. АО2 *)
    MW74 AT %MW74: WORD; (* Команда для верт. АО2 *)
    MW75 AT %MW75: WORD; (* Текущее состояние АО2 *)
    MW77 AT %MW77: WORD; (* Готовность АО1 *)
    MW78 AT %MW78: WORD; (* Готовность АО2 *)
    ...
    И делать запросы внешним компьютером слов: например: - %MW62 (0x3E).
    Контроллера нет под рукой. Только заказали.
    Может у кого-нибудь есть возможность поставить эксперимент на реальном контроллере. Попробуйте, не распределяя рабочие слова в памяти ввода-вывода, внешней программой обратится к какой-нибудь внутренней переменной ПЛК.
    У меня в прошлых проектах (совершенно другой контроллер ) такое работало.
    Последний раз редактировалось vsa; 18.01.2022 в 19:00.

  5. #8405

    По умолчанию

    Валенок, не понял вопроса? Мне Slave необходим для связи в внешним компьютером. Я все сделал для этого. Или это не так делается? Я же новичок в этом ПЛК.

  6. #8406

    По умолчанию

    Спасибо за ценные наставления. Обязательно учту. Мне понравилась. А как же все таки с обращением компьютера к внутренним словам программы? Так можно? Или необходимо объявлять слова в памяти ввода-вывода?

  7. #8407

    По умолчанию

    Валенок, Конечно же моя программа не имеет описание рабочих переменных, как я показал на скрине. Я бы и сам помер с такой идентификацией работать. Это я привел для примера.
    Тут главная проблема в том, что внешний компьютер много использует рабочих слов из моей программы. И есть даже такое участки памяти моей программы, где компьютер хранит временные значения слов, с которыми я и не работаю.
    Вот тут и начались у меня проблемы, как ПЛК ОВЕН должен был описать рабочие переменные для связи с внешним компьютером. Я до этого проекта много лет работал с ПЛК M221 (TWIDO) от Schneider Electric. Так в этих контроллерах, я не описывал никакие рабочие слова для связи с внешним (Mаster) компьютером. Компьютер сам обращался напрямую к моим переменным. Так было просто. А сейчас я перекладываю программу от M221 (IL) на ПЛК ОВЕН (ST). Программа большая, под 4-6 тыс. инструкций IL. И повторюсь, не хотелось бы корректировать сильно программу внешнего компьютера. Для этого я и хотел применить абсолютную адресацию слов.
    Под рукой нет контроллера. Я с ним еще ни разу не работал. Так еще раз задаю вопрос. Так можно? Или нет?

  8. #8408

    По умолчанию

    Так в этих контроллерах, я не описывал никакие рабочие слова для связи с внешним (Mаster) компьютером. Компьютер сам обращался напрямую к моим переменным.
    скорее всего в тег листе или словаре с переменными тупо стояла галка "доступ по модбас" или "видимость для ОРС", на которую никто не обращает внимания

  9. #8409

    По умолчанию

    Напишу про слейв , регистры считаются с 0 адреса, можно добавить хоть 100 хоть 1000 шт. регистров.

    Также в Codesys есть свой встроенный Geteway и сервер CodesysOPC.02
    Тут встаёт вопрос, сможет ли ваша программа считать данные с CodesysOPC.02 ?
    Последний раз редактировалось kondor3000; 19.01.2022 в 15:47.

  10. #8410

    По умолчанию

    Программу для ПК и ПЛК разрабатывала одна команда. Мы обговорили регистровый интерфейс взаимодействия - через какие слова будет общение. Я со стороны ПЛК наполнял эти слова значениями, и считывал присланные данные для отработки действий технологического оборудования. А ПК таким образом управлял работой роботизированного комплекса. Если я начну в ПЛК ОВЕН в конфигурационной вкладке подключать слова для взаимодействия, то из будет много! Поэтому я и решил уйти от этого. Просто описать Slave для подключения и пусть компьютер обращается в память ПЛК.
    Если это в ПЛК ОВЕН нереально сделать простым способом, то подскажите, как красиво описать в конфигурации большой массив слов 20-40 слов (16 битных).

Страница 841 из 1041 ПерваяПервая ... 341741791831839840841842843851891941 ... ПоследняяПоследняя

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

Ваши права

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