Предисловие:
Первый раз я симулировал, когда мне было лет 17.
Моя девушка хотела меня удивить и "приготовила" пирог.
Изображать восторг от кулинарного шедевра у меня получилось, но с трудом.
Девушка давно уже скрылась за горизонтом. Где-то в глубине памяти я еще могу услышать, как раскатистым майским громом летел недоеденный пирог в утробу мусоропровода под наш с ней обоюдный смех до колик.
А вот желание симулировать осталось со мной до сих пор.
Тема этой статьи - симуляция сетей и отладка в симуляторе взаимодействия распределенных систем.
-------
Редакция от 15-02-2017
В этой статье я расскажу, как создать объекты симуляции, как их объединить в сеть и как отлаживать устройства в симуляторе и на "живом" ПЛК.
Будем идти медленно и по шагам. Давно хотел эту статью написать.
Сейчас рассмотрим симулятор и отладку простого проекта.
Итак, создаем проект и какую-либо простую программу, например, местное и дистанционное управление освещением.
Представление программы в картинках ниже
Теперь надо проверить полученную программу в симуляторе.
Для этого создадим упрощенное сетевое представление и создадим отладочный экран (виртуальный прибор).
005 - упрощенное сетевое представление
006 - создаем экран отладки
Если есть желание назначить свои пользовательские изображения на кнопки, то их нужно импортировать в проект в раздел документы.
007 - создание секции в разделе документов, смена фона, импорт файлов кнопок, установка кнопки на сцену
008 - установка изображения для кнопки
Теперь привяжем полученную кнопку к программе - ПКМ "Добавить подключение"
009 - Добавление подключения кнопки к входу контроллера Uin1. Режим управления входом из симулятора.
Затем добавим сигнализатор выхода и текст на кнопку
Сигнализатор выхода построим из двух изображений и будем управлять их видимостью.
010 - сигнализатор выхода, два изображения в разных слоях. Сдвинул изображения для наглядности. Можно и в одном слое, но в разных очень удобно
011 - Подключаем управление видимостью второго изображения
012 - заключительный важный штрих. Связываем главный экран отладки с главной программой.
Переходим в режим симуляции.
Запускаем симулятор.
Вызываем окно главного отладочного экрана (Жук пока)
Переходим в многооконный режим отладки (окно-разделить)
Радуемся результату.
На сегодня все.
В следующий раз мы свяжем этот проект с реальным контроллером. И будем отлаживать один вход аппаратно, а второй из симулятора.
Так же свяжем реальный контроллер с виртуальным.
Круто! Работает!
А вот можно ли отладить в 400 через 450 - не помню.
В любом случае можно воспользоваться этой шпаргалкой и отладить в виртуале.
Цитата: VoronovMaksim88 от 31 марта 2016, 15:36:04
Всё же работает, но не стабильно, иногда Z400 не видит приходится перезагружать обе машины по питанию и тогда связь появляется. Но что мне понравилось, отладка программы сервера прекрасно работает одновременно с вьювером.
А тебе надо ядро обновить у 450.
Цитата: mike от 31 марта 2016, 15:36:23
А вот можно ли отладить в 400 через 450 - не помню.
Можно !!! Проверил !!!
Вот будущее и наступило. Стерта грань между реальностью и виртуалом))))
Целый час пытался запустить эмуляцию сети. Потом напряг мозг и понял, что правильная модель сети для эмуляции должна выглядеть как на скриншоте. И заработало !!! Если кому интересно, проект в прикрепе. ОС WinXP.
Я тут подумал... Если уж действительно симулировать по-взрослому, то надо добавить возможность симуляции панели z033. .теоретически это можно сделать имеющимися средствами. Но правильнее чтоб это было отдельное неизменяемое устройство со своим одним единственным отладочным экраном, который полностью повторял бы внешний вид панели.
А панель можно подключить к физическому порту ПК и общаться с ней из симулятора.
Да, но ведь мы говорим про симуляцию по-мужски ;)
Уж симулировать так симулировать !!!
Кто предложил тот и пишет)))
С тебя логика с меня визуализация)))
Думаю это один человек должен делать. Попробую.
У панели логика не сложная)))
Никак не могу запустить симуляцию Z400+Z401. Прошу поглядеть проект и ткнуть меня носом что я не так делаю. Перепробовал разные варианты подключения, либо нет ошибки и переменная не читается, либо возвращает ошибку 16, либо ошибку 23.
До чего дошёл прогресс.
Подключил Z033 к Z400. Но памяти для отладки не хватает. Думаю как бы опросить хотя бы основные переменные. Хотел сперва сторонний OPC прикрутить.
А потом загрузил программу в Z400. Подключил в сеть Z450 им опрашиваю все переменные из Z400 которые мне нужны, но при этом реально Z450 в сеть не подключен, он работает в режиме симуляции. Таким образом у меня в сети два реальных и одно виртуальное устройство. Работает пока без сбоев. И при этом можно сразу вести отладку верхнего уровня на смартфоне или ПК.
А в бытность контроллеров Zt-233 симулятор был вообще единственным средством отладки. И тоже умел многое.
Не пойму как симулировать сеть. Скачал тот пример, запустил, что только не делал, не приходят данные. Есть другой рабочий пример.
Используйте встроенные виртуальные порты
Все делаю как описано выше, не пойму почему не работает. Проверьте в проекте, что не так?
Саш, привет!
Дьявол в деталях. Ты все верно сделал, кроме одного пункта.
На обоих виртуальных портах поставь галочку "Разделять порт..."
номера TCP портов должны быть одинаковыми
Прошу прощения не могли бы вы обновить фото, не открываются не на одном устройстве.
Цитата: иван от 08 сентября 2024, 02:41:09Прошу прощения не могли бы вы обновить фото, не открываются не на одном устройстве.
Поддерживаю просьбу. С PNG явно проблемы у многих. Хотя бы перформатировать на JPG.