Да, так и есть. Для быстрой обработки есть OwenLogicRT
Да, так и есть. Для быстрой обработки есть OwenLogicRT
Тролль-наседка, добрый, нежный и ласковый
Получил комплект ПЛК110-60 + СП307Б. Перетащил предыдущий проект в новый ПЛК, наладил связь и пр.
Появились проблемы, а значит и вопросы.
1. Как посчитать время выполнения программного кода? Интересует кусок, который работает по прерыванию таймера 20мкс:
Code.jpg
2. Возможны ли обрывы связи из за того, что в таймере крутится слишком длинный код?
Наблюдается пропадание связи ПЛК<>ОП при рекомендуемых значениях (115200). При снижении скорости до 19200 обрывы случаются крайне редко, но всё же есть. На скорости 9600 обрывов связи не замечено. Теряет связь именно ПЛК, т. к. перезагрузка ОП к восстановлению связи не приводит. После перезагрузки только ПК при включенной ОП связь восстанавливается. ПЛК-слейв, ОП-мастер, Модбас РТУ. При написании программы правило, что переменная должна записываться только в одном месте соблюдено.
ЗЫ: И еще один маленький вопросик: как на ST прописать действие по переднему фронту импульса без применения ФБ?
Последний раз редактировалось Sulfur; 26.05.2016 в 11:49.
1. Время можно получить через SysLibTime, есть 2 поля, где время в мкс. Считайте.
2. Возможны. прерывание высокоприоритетно (по сравнению с задачами) и забивает (если длинное) всю остальную работу ПЛК.
3. if ((new_val<>old_val)AND (new_val)) then Действие(); old_val:=new_val; end_if
Последний раз редактировалось Филоненко Владислав; 26.05.2016 в 11:16.
Тролль-наседка, добрый, нежный и ласковый
1. Спасибо, буду разбираться.
2. Сокращал код, временно отключая разные участки - эффекта не дало. На ПЛК110.60 старой модификации в таймере крутится тот же код (до 13 строчки), проблем со связью на 115200 не наблюдается. Правда там ОП ИП320.
3. Спасибо. Но слишком сложная конструкция в плане времени работы. Думал, что есть специализированная команда.
Цикл меняли? Код увидеть можно?
Тролль-наседка, добрый, нежный и ласковый
Цикл таймера? Нет, он стоит по умолчанию 20мкс. Минимальный цикл основной программы ПЛК менял в диапазоне 5-50мс. В данный момент при 5 мкс и скорости 9600 обрывов не наблюдается. При МинЦикле до 50мс обрывы случаются на любой скорости, выше 19200, но жутко тормозит отображение реалтайм переменных на ОП. В самой программе нет мощных вычислений, примитивная релейная логика. Правда есть несколько таймеров.
1111.zip
Последний раз редактировалось Sulfur; 30.05.2016 в 10:21.
1. Снизьте цикл ПЛК до 2 мс. увеличивать стоит только при очень больших программах.
2. Прошейтесь 0.3.53
3. Попробуйте увеличить период вызова таймера до 50 мкс.
4. При цикле 50 мс отображение переменных и должно тормозить.
Тролль-наседка, добрый, нежный и ласковый
2. Сделано. Проблема есть.
3. Как я уже говорил, по моим наблюдения проблемы со связью не зависят от количества кода в прерывании таймера. Я пробовал сокращать, пробовал вообще крутить там "пустую" программу - безрезультатно.
Последний раз редактировалось Sulfur; 02.06.2016 в 13:12.
Значит дело не в прерывании. У нас такое поведение не встречалось
Тролль-наседка, добрый, нежный и ласковый
Попробуйте пустую программу с прерыванием. И проверьте гальванику на порту, возможны наводки. Заземлите кабель (перед заземлением проверьте разность потенциалов) или воспользуётесь usb/ethernet
Тролль-наседка, добрый, нежный и ласковый