После первого запуска эмулятора и выхода из него.
Вы должны непосредственно вызывать AutoWin.exe из папки AutoWin
Захват-1.png
Тогда увидите, что сохраняется.
А так, из конфигуратора, каждый раз проект компилируется и загружается в эмулятор заново.
После первого запуска эмулятора и выхода из него.
Вы должны непосредственно вызывать AutoWin.exe из папки AutoWin
Захват-1.png
Тогда увидите, что сохраняется.
А так, из конфигуратора, каждый раз проект компилируется и загружается в эмулятор заново.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Здравствуйте.
Решил написать, т.к. поиск не дал ничего. (или не умею пользоваться)
Недавно первый раз взяли в работу СП307.
Создали проект, но столкнулись с несколькими граблями.
Проект:
Панель Master RTU.
Управляет 7-ю Slave-ами.
В основном действия реализованы через макросы. Чтобы переключать экраны совместно с действиями.
На момент написания еще ни к одному слейву не подключена, т.е. пока физической связи нет.
Грабли:
1. Безбожно тормозит (хотя проверочные проекты в которых нет обращения к Слейвам вроде не тормозит) - Вопрос - Тормоза из-за отсутствия связи, или что-то нужно пересмотреть в подходе?
2. Часто выскакивает системное окно "Доступ открыт", хотя никакой ФО связанной с доступом вроде нет. Есть единственный элемент - "Переход на экран", требующий ввод пароля, но в тестах его не трогаем.
3. Как лучше организовать систему индикации обрыва связи с каждым Слейвом? через макрос, вызываемый каждую секунду и считывающий, например какой-то бит у Слейва, но что будет при обрыве связи, вернет ли считывание 0 или останется последний считанный результат? (можно конечно считывать регистр, который инкриментировать на Slave при каждом считывании и проверять на панеле, изменилось ли значение). может есть какой-то более прямой способ.
4. Есть ли какая-то API для отслеживания ошибок протокола, т.е. когда в старшем байте функции возвращается 0х8Х?
5. В стандарте С допустимы такого вида сравнения if ((!GetPSBStatus(xxx))&&(var1))||(GetPSBStatus(yyy) &&(var2>10)){...} -подскажите пожалуйста правильный синтаксис задания множественного условия. Что-то в таком виде не хочет компилировать, приходится вложенными if-ами решать вопрос.
6. Задавая ФО как глобальную, она перескакивает на следующий экран. А поскольку у нас на каждом экране картинка, то еще и за битмап прячится. - Так должно быть или что-то где-то сделано не правильно?
Заранее спасибо.
Последний раз редактировалось R2_; 01.10.2019 в 20:27.
1. Нет слейвов - будут тормоза. Ведь запросы к отсутствующим слейвам Вы не запретили. А число попыток по умолчанию - три и таум-аут по умолчанию 1000 мс. Т.е. панель шлет запрос, ждет ответа, через 1000мс повторяет запрос и так три раза на каждый запрос. В момент ожидания панель и тормозит
уменьшите тайм-аут до 200
Тайм-ауты находятся здесь
PFW28 -тайм-аут для порта Download
PFW38 -тайм-аут для порта PLC
ф. областью пишем туда 200. Ф.область должна быть глобальная и действие - После загрузки проекта.
Сразу совет по п.6
в свойствах ф.области вручную задайте координату за пределами экрана, применить, и вкл. галку Закрепить
Захват-1.png
Теперь ф.область не будет "путаться под ногами" на любом экране
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Спасибо большое.
Очень помогли.
Здравствуйте.
2. Сложно прокомментировать, не видя проекта и не имея инструкций по воспроизведению проблемы.
3. Если обмен организован через макросы - то функции чтения/записи возвращают FALSE в случае ошибки обмена. Если обмен настроен в элементах - то можно в макросе контролировать регистры PSW66 (Download-порт) / PSW76 (PLC-порт) - в них записываются адреса слэйвов, при последнем сеансе обмена с которыми произошли ошибки.
4. Такое возможно, если обмен писать на низкоуровневых функциях. См. здесь:
https://www.owen.ru/uploads/aip_47_s...slov_36-37.pdf
5. У вас со скобками проблемы. Проще всего, конечно, было бы разбить такое длинное условие на несколько более простых и потом проверять результирующие биты.
Вот так - компилируется (не уверен, что правильно понял желаемые приоритеты операций в исходной записи):
Код:BOOL var1; int var2; if ( ( !GetPSBStatus(300) && var1 ) || ( GetPSBStatus(400) && (var2 > 10) ) ) { ; }
Последний раз редактировалось Евгений Кислов; 02.10.2019 в 11:52.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
А для чего? Эта несложная и недорогая железка предназначена для предоставлении информации о процессе и подаче команд.В основном действия реализованы через макросы.
Тоже использую макросы, но скорее как маленькое решения для какой-то там функции.
В основном не использую вовсе,
+79104444236
С уважением,
Лапшин Вячеслав
Ну... например, когда нужно одновременно сделать несколько, пусть простеньких вычислений, в зависимости от вычислений перейти на один или на другой экран, и вкл/выкл какие-то внутренние биты-флаги и отправить на все Слейвы...
ФО, на сколько я понимаю, не имеет условных переходов. Или я ошибаюсь?
Последний раз редактировалось R2_; 01.10.2019 в 21:31.
R2_, ну Вы, пожалуйста, только логично объясните. Цель какая вычислений на СП307?
Зачем придумывать дурацкие и никому необъяснимые переходы с экрана на экран?
Демонстрация силы может?
Что ПЛК в системе может не установлен и СП307 центр принятия решений?
Хорошо, а по вычисленным в ПЛК битам переходы сделать не получается?
Надо уважать АСУ ТП и стараться не усложнять. Каждая железка если используется для своей цели, без разных перегибов, то и работает с гарантией.
Должна быть явная цель у любого логического действия. Действие без цели - дуримарство.
+79104444236
С уважением,
Лапшин Вячеслав
Добрый день.
Не получается задать цвет кнопки. Выбираю нужный цвет, жму "Применить", "ОК", но цвет кнопки не меняется. В чем может быть причина ?
Последний раз редактировалось Newcomer; 02.10.2019 в 11:46.
Если изображение кнопки является картинкой - то надо менять картинку.
Эти настройки влияют на цвет только в том случае, если используется скин кнопки из галерей 3-5:
02-10-2019 11-50-41.png
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk