Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 53

Тема: Организация программы для ПЛК (переход с AVR на ПЛК)

  1. #21
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Дорогие коллеги: ещё вопрос, если можно

    Система ПЛК160 (Slave) - ИП320 (Master). В конфигурации ПЛК выбираю "Modbus (slave)" и начинаю "забивать" туда сетевые переменные. Эти переменные, насколько я понял из документации, являются Retain.

    В Global_Variables при объявлении Retain-переменных пишем например "Water_Actuator_Type:INT:=1;" и всё.

    Никак не сообразить: как задать начальное значение сетевой переменной?

  2. #22

    По умолчанию

    можете объявить переменные не в самой конфигурации, а в тех же глобальных видом
    Код:
    perem1 AT %QW10.32.0 : int := -125;
    где %QW10.32.0 - адрес модуля 2 byte в конфигурации
    p.s. только учтите, что панель ип320 вам перезапишет нулями эти переменные на старте программы

  3. #23
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    ...панель ип320 вам перезапишет нулями эти переменные на старте программы
    Даже если так объявить? Только на старте?

    В AVR-контроллерах задание начальных значений для eeprom-переменных в инициализацию "запихнул" - и дело в шляпе...

    Есть ли ещё какие-то способы?

  4. #24

    По умолчанию

    только на старте. способы чего?

  5. #25
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    способы чего?
    ...как задать начальное значение сетевой переменной.

    Т.е. нужно сесть и сделать таблицу сетевых переменных, для каждой переменной указать её адрес, тип, начальное значение, и номер регистра ПЛК, где будет храниться переменная: я правильно понимаю?

  6. #26

    По умолчанию

    если вы подразумеваете под "сетевыми переменными" переменные для передачи инфы в панель, то как таковыми сетевыми они не являются.
    простой пример: вам надо передать на панель цифровое int значение. вы добавляете в конфигурации плк модуль modbus slave, настраиваете связь, затем "по-простому" именуете 2 byte именем вашей переменной. вместо этого можно тоже самое сделать сразу в глобальных. но добавлять модуль modbus slave и все необходимые 2 byte все равно надо. как это сделать - см. пост #23

  7. #27
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    если вы подразумеваете под "сетевыми переменными" переменные для передачи инфы в панель
    Да, подразумеваю.

    Цитата Сообщение от swerder Посмотреть сообщение
    ...добавляете в конфигурации плк модуль modbus slave, настраиваете связь, затем "по-простому" именуете 2 byte именем вашей переменной
    Так и делаю. Причём эта операция то же самое что и Вы указали выше:

    Цитата Сообщение от swerder Посмотреть сообщение
    тоже самое сделать сразу в глобальных.
    НО: насколько я понял, при помощи конфигурации начальное значение не задать. И это можно сделать в Global_Variables(RETAIN) c указанием адреса (пост #23). По-моему не очень удобно получается...

  8. #28

    По умолчанию

    Цитата Сообщение от morcat Посмотреть сообщение
    НО: насколько я понял, при помощи конфигурации начальное значение не задать.
    насколько я знаю - да, не задать
    Цитата Сообщение от morcat Посмотреть сообщение
    И это можно сделать в Global_Variables(RETAIN) c указанием адреса (пост #23). По-моему не очень удобно получается...
    можно без ретайн. область обмена из конфигурации (модбас слэйв или мастер) автоматом сохраняется в ретайн.
    выбор за вами. по-моему наоборот удобнее так - сразу видно что за переменная, какой имеет тип, начальное значение можно задать, комментарий. а в конфигурации надо все время раскрывать этот 2 byte

  9. #29
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    В общем буду делать так:

    1) В конигурации ПЛК в ModBus(slave) "забиваю" переменные необходимые для отправки на панель с несколько изменёнными именами. Если имена переменных будут одинаковые - компилятор ругается.

    Config_PLC.jpg

    2) В Global_Variables(RETAIN) задаю переменную с таким же адресом уже с начальным значением:
    Код:
    PVent_Enable AT %QX7.1.0.0: BOOL := TRUE;
    По крайней мере так работает.

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

    По умолчанию

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

Страница 3 из 6 ПерваяПервая 12345 ... ПоследняяПоследняя

Похожие темы

  1. Организация работы системы
    от DSV в разделе Сетевые технологии
    Ответов: 16
    Последнее сообщение: 21.08.2011, 17:39
  2. Организация связи PLC - modbus - HMI
    от interprog в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 09.06.2010, 23:35
  3. организация сети по Rs485 (плк, ип320, пк)
    от lsass в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 29.11.2009, 21:30
  4. Организация работы по сети
    от dmm в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 30.07.2009, 15:46

Ваши права

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