Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 26 из 26

Тема: Проблема с ПЛК154

  1. #21

    По умолчанию

    Спасибо CEkip за помощь.
    Понимание о прочитанном и увиденном:
    При записи имени переменной в конфигурации ПЛК она прописывается как глобальная переменная. (эти имена резервируются за физическим входом/выходом). В поле глобальных переменных их дублировать (записывать) не надо,(ошибка). Если при написании имени объекта в программе всплывет окно (определения переменной) и ничего не меняя подтвердить ОК - переменная пропишется как локальная и в дальнейшем если она совпадет при написании имени физического входа/выхода в конфигурации ПЛК локальная переменная не даст работать физическому адресу, что и произошло. При этом ошибка при совпадении имен не указывается. Проста локальная переменная имеет приоритет исполнения перед глобальной при совпадении имен. Для себя сделал вывод - нужно в программе физический вход/выходы записывать его физическим адресом (%QX1.1).

  2. #22

    По умолчанию Мнение человека со стороны :-)

    Цитата Сообщение от pirsabat Посмотреть сообщение
    Спасибо CEkip за помощь.
    А Валенку спасибо конечно говорить не надо ?!
    Цитата Сообщение от pirsabat Посмотреть сообщение
    Для себя сделал вывод - нужно в программе физический вход/выходы записывать его физическим адресом (%QX1.1).
    на мой взгляд с такими выводами тоже далеко не уедешь!!! простой пример: Вы добавили в начало модуля конфигурации ModBus(Master/Slave) еще одну переменную и все "физические адреса" сдвинулись!!! - так получается сплошной геморрой :-) и любая переделка программы может перерости в жуткий геморой.
    Лучше пользоваться нормальными именами переменных rlT_Atmosf - что означает переменная типа REAL равная температуре наружного воздуха и тд. Для вывода на панели оператора будет называться wdT_Atmosf - означает переменная типа WORD равная .....
    P. S. в таком случае ни какой путаницы не будет и программа будет читаться (программистом/наладчиком) на пару порядков быстрее чем:
    If %QX1.1 and %QW11.2.0 then
    .....
    end_if

    мой вариант:
    If rlT_Atmosf < 1 then
    .....(*Пора включать подогрев аккумуляторного бака*)
    elsif rlT_Atmosf > 3 then
    .....(*Пора выключать подогрев аккумуляторного бака*)
    end_if

    P. S. Сравнивайте и решайте сами как Вам удобней.
    Последний раз редактировалось Gans; 03.01.2011 в 23:46. Причина: добавил свой вариант
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

  3. #23
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    вот-вот Согласен с гансом, и еще пишите коменты , не стесняйтесь.
    А глобальных старайтесь лепить поменьше. советую пользоваться автообъявлением. Если окно не лезет, включайте глобальный поиск. Значит где-то уже такое есть. На мой взгляд кодесис много дружелюбнее степ7(в смысле интерфейс)

  4. #24

    По умолчанию

    - Подскажите как пройти на ул.1-Мая
    - О это вам в район Ромашки надо
    - Спасибо что пообщались!

    - проехать 3 светофора прямо на 4 налево
    - Спасибо за помощь

    Вот и вся разница.

    Если при добавлении модуля полетит вся адресация, то это какой то бардак получается. Пришел новый станок в конвейерной линии передал станку - принял от него пару меток и что в рабочей линии все адреса улетели, даже если модуль новый добавил в стойку (расширился не хватило входов) тоже адреса слетят? Ну да ладно, до этого еще многому научиться надо потом смогу подискутировать.

    Пока легче читается такой вариант (для обслуживающего персонала)
    A I 1.0 (исправность инвертора)
    A M 12 (бункер полон)
    AN I1.3 (сход ленты)
    Q 2.0 (транспортер RUN)

    Про окно лезет не лезет в первом примере ничего нет. Сперва написал программу(окно всплывает, рекомендует ОК, нажимаю записывается автоматом в ВАР,приятно) - проверил линия синенькая до выхода ,а потом в конфигурации задал имена входам/выходам - не работает, не приятно.

    Пока дружелюбней - Степ7, думаю это дело привычки, освою КоДеСис сравню.

  5. #25
    Пользователь
    Регистрация
    15.12.2006
    Адрес
    Калуга
    Сообщений
    157

    По умолчанию

    Глобальные переменные нужны если Вы будете обращаться к Вашему ПЛК из СКАДЫ, или какой то другой программой через OPC/

  6. #26

    По умолчанию

    Цитата Сообщение от pirsabat Посмотреть сообщение
    - Подскажите как пройти на ул.1-Мая
    - О это вам в район Ромашки надо
    - Спасибо что пообщались!
    на совсем так, а предлагаю сразу "навигатор" (и рекомендациями по изготовлению карт к нему) для езды по неизведанному

    Цитата Сообщение от pirsabat Посмотреть сообщение
    Пока легче читается такой вариант (для обслуживающего персонала)
    A I 1.0 (исправность инвертора)
    A M 12 (бункер полон)
    AN I1.3 (сход ленты)
    Q 2.0 (транспортер RUN)
    Очередная карта
    исправность инвертора - blnInverterOK или blnAlarmInverter или blnNotAlarmInverter
    бункер полон - blnBunkerFull
    сход ленты - blnAlarmType
    транспортер RUN - blnTransporterON или blnTransporterRun

    еще если эти переменные считывают с модуле ввода то первым символом можно добавить букву "i" - Input (для Вас это должно быть близко )
    а для физических выходов на модули вывода можно добавлять букву "q" - Quit.
    Тогда аналогичную переменную даже случайно не объявишь внутри программы и проблем в этой сфере больше никогда не будет.

    P. S. в любом учебнике по программированию где-то в начале почти всегда есть аналогичные рекомендации.
    Автоматизация Диспетчеризация Сервис
    e-mail: ads-kaluga@mail.ru

Страница 3 из 3 ПерваяПервая 123

Ваши права

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