Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 25

Тема: Проблема с кодом на ST. Цикл выполняется с ошибкой.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Какой ПЛК?
    СП307 - мастер на линии RS232?
    ПЛК 160, панель СП307.
    ПЛК - slave, СП307 - мастер, SCADA - мастер.

    Проверить на железе нет возможности, поэтому пишу пример, откатываю, а потом применю приём в проекте.

    Таких переменных и синхронизаций будет около 80 шт.
    Поэтому нужен оптимальный метод, таймеров много использовать не смогу.

  2. #2

    По умолчанию

    Всем спасибо за вклад, проблема всё таки с отладкой, нужно оказывается снимать флаг фиксации переменной.

    Нужно ставить галку снять фиксацию перменной, по умолчанию галки нет, переменная краснеет, значит фиксируется. Я этого увы не знал.
    Последний раз редактировалось hardkp; 09.04.2022 в 14:10. Причина: дополнить

  3. #3

    По умолчанию

    Modbus.JPG

    Конфигурация примерно так выглядит?

    Такая настройка дает возможность подключить к одной Modbus-таблице 2 мастера через Debug и RS232,
    а так же еще 4-е мастера через Ethernet.
    При этом все могут читать и писать (по принципу, кто последний тот и прав).
    Последний раз редактировалось EFrol; 09.04.2022 в 14:23.

  4. #4

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Modbus.JPG

    Конфигурация примерно так выглядит?

    Такая настройка дает возможность подключить к одной Modbus-таблице 2 мастера через Debug и RS232,
    а так же еще 4-е мастера через Ethernet.
    При этом все могут читать и писать (по принципу, кто последний тот и прав).
    Я не знал и создал 2 таблицы. Спасибо буду знать и использовать.
    А как в таком случае создать переменную в RETAIN и присвоить ей начальное значение?

  5. #5

    По умолчанию

    Цитата Сообщение от hardkp Посмотреть сообщение
    Я не знал и создал 2 таблицы. Спасибо буду знать и использовать.
    А как в таком случае создать переменную в RETAIN и присвоить ей начальное значение?
    Вы бы хоть видео для новичков посмотрели или поиском поискали. Этот вопрос задают через день.

    Все переменные в конфигурации, в ПЛК - слейве будут глобальные и энергонезависимые. После заливки программы в контроллер задайте начальные значения хоть руками. Можно и начальную инициализацию сделать.
    Последний раз редактировалось kondor3000; 11.04.2022 в 13:22.

  6. #6

    По умолчанию

    Решил не создавать новую тему, а продолжить здесь же, но с циклом While в ST.

    Хочу создать цикл, в котором переберутся все биты байта bCount. На эти биты физически повешены 8 реле, а на реле - 8 параллельных насосов с разной производительностью.
    До того, как оператор запустит программу, мне нужно по-быстрому программно пробежаться по всем возможным вариантам включения и прикинуть: а получиться ли задать нужную производительность комбинацией насосов?
    Код:
    Код:
    FUNCTION myFunc: BOOL
    
    VAR
        bCount: BYTE := 0;
    END_VAR
    
    
    WHILE NOT bCount=255 DO
        bCount := bCount + 1;
    
    
    //    IF bCount.0 THEN ......; END_IF
    //    IF bCount.1 THEN ......; END_IF
    //    IF bCount.2 THEN ......; END_IF
    //    IF bCount.3 THEN ......; END_IF
    //    IF bCount.4 THEN ......; END_IF
    //    IF bCount.5 THEN ......; END_IF
    //    IF bCount.6 THEN ......; END_IF
    //    IF bCount.7 THEN ......; END_IF
    
    END_WHILE
    Цикл не отрабатывается. Происходит только один проход. Потом выход из функции.
    Что я сделал не так?

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Что я сделал не так?
    использовать, чтоб проверить все 255 комбинаций в цикле while не получится, потому что выхода получат значение переменной в последний раз записываемом в цикла плк
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  8. #8

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    использовать, чтоб проверить все 255 комбинаций в цикле while не получится, потому что выходы получат значение переменной в последний раз записываемом в цикла ПЛК
    Ну там еще надо включить общий пускатель. Так что во время перебора цикла насосы будут выключены.


    Цитата Сообщение от capzap Посмотреть сообщение
    Не знаю на чем вы пишете, но в ST не типа byte
    Есть. Компилятор не выкидывает ошибок. Всё норм.

    Цитата Сообщение от capzap Посмотреть сообщение
    И почему бы for не использовать?
    Хочется реализовать так, что если нужная производительность найдена (например, на 2-ом шаге), то цикл моментально прекращается и не тратит ресурсы ПЛК. Эта функция должна проверить возможность задавания аж 22 разных комбинации насосов. Т.е. ее надо будет запустить 22 раза с разным входным аргументом. Задача программы: сказать заранее оператору получиться у него или нет. Что-бы зря не начинал.
    Понимаю, что через FOR тоже можно.

    Цитата Сообщение от capzap Посмотреть сообщение
    WHILE NOT (bCount=255) DO
    Точняк! Нужны были скобки после NOT!
    Заработало. Цикл перебирается полностью.
    Спасибо.

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    А на чём Вы это запускаете?
    Не совсем понял ваш вопрос.
    Последний раз редактировалось ВладОвен; 02.06.2022 в 16:16.

  9. #9

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение

    Не совсем понял ваш вопрос.
    У нас есть ПЛК с ST и ПР с ST - поэтому просьба уточнять, иначе путаемся мы сильно
    Тролль-наседка, добрый, нежный и ласковый

  10. #10

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    У нас есть ПЛК с ST и ПР с ST...
    А. Понял.
    У меня ПЛК.
    Спасибо.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 21.01.2021, 22:08
  2. Панель СП310 - загрузка проекта с исходным кодом
    от _Алексей_ в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 23.08.2018, 07:19
  3. Экспорт проекта с ошибкой
    от Poo в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 27.07.2018, 15:44
  4. Не выполняется PLC_PRG
    от S#716_0P в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 08.09.2017, 13:35
  5. Не выполняется установка Codesys V3
    от Дмитрий Артюховский в разделе СПК2xx (архив)
    Ответов: 11
    Последнее сообщение: 26.06.2013, 00:27

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

Ваши права

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