PDA

Просмотр полной версии : В режиме симуляции часть программы работает, а при подключени к ПЛК-110 нет



NIK-85
19.04.2024, 15:12
Здравствуйте! На ПЛК-110 дописал код, при прохождении объема в 10 литров выдает импульс. В режиме симуляции код работает, при подключении к ПЛК не вычисляется переменная rashodPodpitki, хотя на переменную Q_podpitki значения приходят. Я подозреваю что при выполнении на контроллере ,программа не успевает зайти в условие IF uch THEN, в те доли секунды пока uch= TRUE . Хотя вот отрицательные значения переменной Q_podpitki начинает высчитывать.75282

kondor3000
19.04.2024, 15:25
Здравствуйте! На ПЛК-110 дописал код, при прохождении объема в 10 литров выдает импульс. В режиме симуляции код работает, при подключении к ПЛК не вычисляется переменная rashodPodpitki, хотя на переменную Q_podpitki значения приходят. Я подозреваю что при выполнении на контроллере ,программа не успевает зайти в условие IF uch THEN, в те доли секунды пока uch= TRUE . Хотя вот отрицательные значения переменной Q_podpitki начинает высчитывать.75282

Контроллер (цикл 1-10 мс) работает быстрее симуляции (цикл около 64 мс), код не может не успеть куда то зайти. Ищите причину в проекте.

У вас идёт суммирование, а в следующем IF rashodPodpitki>0.01 сброс расхода.

NIK-85
24.04.2024, 15:05
Контроллер (цикл 1-10 мс) работает быстрее симуляции (цикл около 64 мс), код не может не успеть куда то зайти. Ищите причину в проекте.

У вас идёт суммирование, а в следующем IF rashodPodpitki>0.01 сброс расхода.

Да проблема в проекте. Почему то ПЛК-110 с модуля MB110-8A параметры Registr input считывает адекватно, а REAL input нет. По тому как отображаются значения, кажется что порядок чтения данных REAL из регистров модуля выставлен неверно.Не мог найти где можно изменить? Параметр Byte Sequense в конфигурации модуля изменял.Результата нет.

kondor3000
24.04.2024, 18:32
Да проблема в проекте. Почему то ПЛК-110 с модуля MB110-8A параметры Registr input считывает адекватно, а REAL input нет. По тому как отображаются значения, кажется что порядок чтения данных REAL из регистров модуля выставлен неверно.Не мог найти где можно изменить? Параметр Byte Sequense в конфигурации модуля изменял.Результата нет.

Плохо меняли, Byte Sequense надо поставить Native, для правильной передачи. Byte Sequense - это перестановка регистров.
Если у вас не заработало, значит надо Проект/Очистить всё/ Компилировать всё и загрузить проект ещё раз.
Так же надо проверить правильность адресов параметров REAL, для 8А первый REAL - адрес 4, функция чтения 0х03.

NIK-85
25.04.2024, 10:17
Плохо меняли, Byte Sequense надо поставить Native, для правильной передачи. Byte Sequense - это перестановка регистров.
Если у вас не заработало, значит надо Проект/Очистить всё/ Компилировать всё и загрузить проект ещё раз.
Так же надо проверить правильность адресов параметров REAL, для 8А первый REAL - адрес 4, функция чтения 0х03.

Сделал все так как вы написали.Не работает.5-ый вход модуля, но пробовал и с первых 4-х считывать REAL, тоже какая то ерунда идет. Скрины прилагаю 7542175422
PS: ПЛК вот не перезагружал.Но у него проблемы со стартом программы(после перезагрузки по питанию, программа стартует через 20 минут).Поэтому лишний раз боюсь перезагружать, как бы совсем не зависла

Валенок
25.04.2024, 11:40
Сделал все так как вы написали.Не работает.5-ый вход модуля,
ув. kondor3000 ошибся
Byte Sequense надо поставить TraceMode, которое переставляет регистры как 3412
Именно 3412 всё 32-битное во всех текущих овен-модулях.
А еще посмотрите real/command - 03 или 04

Заводской сброс/Проект очистить всё - должно стать рефлексом. Не парит что

Но у него проблемы со стартом
это другая проблема

kondor3000
25.04.2024, 13:51
Сделал все так как вы написали.Не работает.5-ый вход модуля, но пробовал и с первых 4-х считывать REAL, тоже какая то ерунда идет. Скрины прилагаю
PS: ПЛК вот не перезагружал.Но у него проблемы со стартом программы(после перезагрузки по питанию, программа стартует через 20 минут).Поэтому лишний раз боюсь перезагружать, как бы совсем не зависла
В любом случае переставлять регистры можно с помощью Byte Sequense
Похоже уже забыл, потому как давно не использую REAL input, а только групповое чтение массивами с помощью String https://owen.ru/forum/showthread.php?t=35094#10
Примеры записи, чтения через STRING https://owen.ru/forum/showthread.php?t=22915&page=40&p=244022&viewfull=1#post244022

Или структурами https://owen.ru/forum/showthread.php?t=10555&page=987