Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя
Показано с 21 по 30 из 67

Тема: CoDeSys + Linux

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    28.10.2008
    Адрес
    Туймазы, Башкортостан
    Сообщений
    9

    По умолчанию

    Итак, мы уже можем запускать Codesys и набирать в нём программу для своего ПЛК Овен. Теперь желательно связаться с этим ПЛК. Т.к. на соверменных ноутбуках нет com-порта, а установка драйверов prolific вызывает очередные неприятности, связываться с ПЛК я решил через Ethernet.
    Да, как уже многократно тут отписался licc, нажатие Alt+F8 после вроде бы очевидно правильной настройки Communication Parametrs даёт лишь окно с сообщением, что соединение не удалось. Теперь внимательно смотрим в консоль вывода wine и видим там "WARNING: Trying to use ICMP (network ping) will fail unless running as root". Видимо, gateway не сразу устанавливает соединение с устройством, а сначала пытается пропинговать его. ICMP-трафик же простому пользователю в большинстве дистрибутивов Linux не доступен, только суперпользователю. Поиск в гугле по указанной фразе даёт некоторые решения (возможно, в етерсофте воспользовались одним из них); но я поступил проще (от этой простоты сильно страдает безопасность системы!). Даём команды
    sudo winecfg -- для создания правильной структуры /root/.wine/ ,
    sudo mv /root/.wine/drive_c /root/.wine/c_backup -- бекап на всякий пожарный,
    sudo ln -s /home/user/.wine/drive_c /root/.wine/ -- символьная ссылка на "диск це" простого пользователя. Ведь там уже установлены Codesys и таргеты, не мучаться же повторно? Остаётся лишь точно также "скопировать" кусочек реестра:
    sudo mv /root/.wine/system.reg /root/.wine/c_backup
    sudo ln -s /home/user/.wine/system.reg /root/.wine/

    Вуаля! Codesys запускается, видит ПЛК при настройке gateway через connection "Local" (через "'localhost' via Tcp/Ip" почему-то не видит) и даже программирует его. При соединении раз шесть-семь выскакивает ошибка о невозможности открытия таргет-файла plc.xml, но она, что удивительно, ситуацию не портит. Ситуацию портит изредка выскакивающее окно дебагера, приводящее к преждевременному закрытию Codesys. Тут совет один: сохранять проект почаще, как минимум обязательно перед установлением соединения.
    Кстати, тут надобно сказать, что добровольно Codesys выгружаться не желает. После выхода и даже после закрытия висящего в трее Gateway.exe процесс wine продолжает жить. Для окончательного закрытия надо нажать Ctrl+C в консоли.
    Последний раз редактировалось fLegmatik; 11.03.2009 в 09:41. Причина: точка в .wine

  2. #2
    Пользователь
    Регистрация
    28.10.2008
    Адрес
    Туймазы, Башкортостан
    Сообщений
    9

    По умолчанию

    Но всё это было ещё месяц назад. После выхода Debian Lenny я пытался обновить Xandros с этих репозиториев и несколько раз потерпел неудачу из-за нехватки места на мелком системном разделе. После чего удалил Xandros и поставил привычную Mandriva Free 2009.0. Тут повторить трюк не удалось, выскакивает указанная Chupakabra runtime error R6025. Сейчас в планах скачать старый wine (той версии, что лежит в Debian Etch) и подменить бинарник.

  3. #3

    По умолчанию

    Очень интересно и жизненно. Спасибо за подробное описание!

  4. #4

    По умолчанию

    Кстати R6025 периодически вылетала и под виндой. По наблюдениям это часто происходило при попытке логина при недогрузившейся Winodws. Видимо gateway серверу что то нехватало.

  5. #5
    Пользователь
    Регистрация
    28.10.2008
    Адрес
    Туймазы, Башкортостан
    Сообщений
    9

    По умолчанию Linux -> VirtualBox -> WinXP -> Codesys -> Owen PLC

    Цитата Сообщение от lunyov_i Посмотреть сообщение
    Установил на домашнем компе Codesys 2.3.8.1 (windows версия) под Linux, таржеты Owen-овские тоже встали.
    wine ~/.wine/drive_c/windows/system32/Gateway.exe тоже работает или выдаёт R6025?
    Сколько я ни бился, запустить Gateway Server под вайном в мандриве не удалось. Пробовал я и откатиться к wine 0.9.25 (эта версия была в debian4), и скопировать %windir%/system32/* целиком с рабочего виндового компьютера, и устанавливал всякие заплатки для microsoft visual c++ и прочего с помощью winetricks -- ничего не помогает. Похоже, без покупки самой винды не обойтись.

    Попробовал поставить VirtualBox и Windows XP в облегчённом варианте (да-да, на eee pc; такое извращение). Codesys в виртуальной машине заработал на ура, что на мгновение аж скучно стало. Что особо радует, после установки "дополнений гостевой ОС" Codesys прекрасно воспринимает как переключения между полноэкранным и оконным режимом VirtualBox, так и режим интеграции с рабочим столом КДЕ. В итоге сейчас я имею примерно то, чего добивался с самого начала: привычную среду обитания, свободную скада-систему и возможность программировать ПЛК, не перегружая свой компьютер и не занимая чужой.
    Внимание, если кто-нибудь тоже решится повторить эксперимент, сразу ставьте VirtualBox не ниже 2.1.0 (например, в репозиториях mandriva2009.0/main/release и update лежит 2.0.4, а версию 2.1.4 надо искать после подключения mandriva2009.0/main/backports). Дело в том, что в более ранних версиях при настройке виртуальной сетевой платы в режиме NAT не работает ICMP-трафик (я уже упоминал в этой ветке, что без него установить связь с ПЛК невозможно). Единственный вариант там -- переключить сетевую плату в режим "хост-интерфейс" (когда виртуальная машина забирает реальный ip-адрес на реальном внешнем роутере), однако настройка этого хост-интерфейса опять-таки в версиях до 2.1.0 чрезвычайно усложнена. В 2.1.0 настройку упростили, но нам это и не требуется, т.к. теперь ICMP-трафик работает и связь с контроллером прекрасно устанавливается и держится через простой NAT-интерфейс.
    Последний раз редактировалось fLegmatik; 23.04.2009 в 09:18. Причина: заголовок

  6. #6
    Пользователь
    Регистрация
    12.12.2007
    Адрес
    п.Таврическое Омская область
    Сообщений
    122

    По умолчанию

    Цитата Сообщение от fLegmatik Посмотреть сообщение
    wine ~/.wine/drive_c/windows/system32/Gateway.exe тоже работает или выдаёт R6025?
    Сколько я ни бился, запустить Gateway Server под вайном в мандриве не удалось. Пробовал я и откатиться к wine 0.9.25 (эта версия была в debian4), и скопировать %windir%/system32/* целиком с рабочего виндового компьютера, и устанавливал всякие заплатки для microsoft visual c++ и прочего с помощью winetricks -- ничего не помогает. Похоже, без покупки самой винды не обойтись.

    Попробовал поставить VirtualBox и Windows XP в облегчённом варианте (да-да, на eee pc; такое извращение). Codesys в виртуальной машине заработал на ура, что на мгновение аж скучно стало. Что особо радует, после установки "дополнений гостевой ОС" Codesys прекрасно воспринимает как переключения между полноэкранным и оконным режимом VirtualBox, так и режим интеграции с рабочим столом КДЕ. В итоге сейчас я имею примерно то, чего добивался с самого начала: привычную среду обитания, свободную скада-систему и возможность программировать ПЛК, не перегружая свой компьютер и не занимая чужой.
    Внимание, если кто-нибудь тоже решится повторить эксперимент, сразу ставьте VirtualBox не ниже 2.1.0 (например, в репозиториях mandriva2009.0/main/release и update лежит 2.0.4, а версию 2.1.4 надо искать после подключения mandriva2009.0/main/backports). Дело в том, что в более ранних версиях при настройке виртуальной сетевой платы в режиме NAT не работает ICMP-трафик (я уже упоминал в этой ветке, что без него установить связь с ПЛК невозможно). Единственный вариант там -- переключить сетевую плату в режим "хост-интерфейс" (когда виртуальная машина забирает реальный ip-адрес на реальном внешнем роутере), однако настройка этого хост-интерфейса опять-таки в версиях до 2.1.0 чрезвычайно усложнена. В 2.1.0 настройку упростили, но нам это и не требуется, т.к. теперь ICMP-трафик работает и связь с контроллером прекрасно устанавливается и держится через простой NAT-интерфейс.
    Пока мне некогда заниматься экспериментами - пусконаладка идет,
    обновлю Mandrivу до Spring посмотрим....

  7. #7
    Пользователь
    Регистрация
    19.06.2010
    Адрес
    Курск
    Сообщений
    3

    По умолчанию

    Не хочу показаться некропостером, но проблему Codesys + wine под убунтой заборол. Может, кому будет полезно - ставим кодесис под вайном, не обращаем внимания на сообщения об ошибках. Таргеты проставились без проблем через автоинсталлятор. Далее делаем следующее:

    Код:
    sudo setcap cap_net_raw+eip /usr/bin/wine
    sudo setcap cap_net_raw+eip /usr/bin/wine-preloader
    И запускаем кодесис. Связь с ПЛК через Ethernet установилась без всяких плясок с бубном.

  8. #8
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Dropp Посмотреть сообщение
    Не хочу показаться некропостером
    Ну, а спустя 5 лет - это некропост или где? Ничьо, если вопрос возник, а здесь его уже перетирали, то хочу воткнуться именно сюда.

    Цитата Сообщение от Dropp Посмотреть сообщение
    проблему Codesys + wine под убунтой заборол. Может, кому будет полезно - ставим кодесис под вайном, не обращаем внимания на сообщения об ошибках. Таргеты проставились без проблем через автоинсталлятор. Далее делаем следующее:

    Код:
    sudo setcap cap_net_raw+eip /usr/bin/wine
    sudo setcap cap_net_raw+eip /usr/bin/wine-preloader
    И запускаем кодесис. Связь с ПЛК через Ethernet установилась без всяких плясок с бубном.
    Увы и ах. Мне интересен был именно этот пост, потому что я тоже решил сразу зайти по-крупному: установить Кодесис не из виртуалки, а прямо Вайном. Ищу сейчас возможность обойтись без виртуалки вовсе. Ибо, с точки зрения авторских прав, наши крекнутые винды под виртуалкой - это тоже не хорошо.
    Работаю под Убунтой.
    Итак, я установил Кодесис. Не из Рута. Таргеты тоже стали (или скопировал директории? - не помню точно). Прописал пути к либам (у меня свое расположение либ, поэтому уделил внимание). Всьо... Этого оказалось достаточно для старта Кодесис и для компиляции проекта.
    А дальше - да, фигово. Не вяжется с ПЛК по Етернету. Признаки такие же, как здесь и писалось:
    Код:
    err:winediag:IcmpCreateFile Failed to use ICMP (network ping), this requires special permissions.
    То есть да, нужно под рутом, вроде бы. Но под рутом я не ставил. Поэтому вместо обычного
    Код:
    wine Codesys.exe
    (который как раз и стартует нормально) пробую
    Код:
    sudo wine Codesys.exe
    wine пишет:
    Код:
    wine: /home/user/.wine is not owned by you
    Ну, я же пробую как root запустить. Хорошо. Попробовал изменить атрибуты директорий, в которых стал Кодесис и директории .wine - группой объявил root. Дал права группе такие же, как владельцу. Ничего не изменилось.

    Уже после этого пробовал вот этот путь от Dropp по setcap - ноль эмоций.

    Если все же не рассказывать мне про виртуалки (я на них давно уже запускаю КДС и мне этот путь не интересен), то какие еще могут быть мИсли? Или что я не так делаю, пробуя повторить опыт успешных коллег?

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

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    Код:
    sudo wine Codesys.exe
    wine пишет:
    Код:
    wine: /home/user/.wine is not owned by you
    Ну, я же пробую как root запустить. Хорошо. Попробовал изменить атрибуты директорий, в которых стал Кодесис и директории .wine - группой объявил root. Дал права группе такие же, как владельцу. Ничего не изменилось.

    Уже после этого пробовал вот этот путь от Dropp по setcap - ноль эмоций.

    Если все же не рассказывать мне про виртуалки (я на них давно уже запускаю КДС и мне этот путь не интересен), то какие еще могут быть мИсли? Или что я не так делаю, пробуя повторить опыт успешных коллег?
    таки не используйте в таком случае sudo, а зайдите под самим рутом, чтоб папка /.wine создалась в каталоге рута, для этого выберите в консоли под обычным пользователем просто su
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #10

    По умолчанию

    Есть ещё один способ, правда не спортивный. У меня бук с Убунтой, под ней пара образов WinXP с различными наборами пром. софта. Вся развлекуха, инет и офис в Убунте, вся работа в образах. По ethernet с контроллером работает отлично, через проброшенный COM порт работает большинство железяк, за исключением СП270, но как от неё отказались - совсем хорошо стало. В образах виндов настроен бэкап через виндовскую версию rsync, бэкапит в каталог Dropbox в хоме на Убунте. Винды в инет не пускаю совсем, поэтому никаких антивирусов.
    Да, кстати - с ПЛК110 связывался даже через USB, - работало, но не нравится. Втыкаем контроллер в USB, он представляется как USBtoCom конвертор, полученный порт пробрасываем в VirtualBox, но проблема в том, что если его выключить то порт пропадает и чтобы его зацепить заново надо бокс в виндой перезапускать... Не, мой выбор эзернет, проще и недёжнее.

Страница 3 из 7 ПерваяПервая 12345 ... ПоследняяПоследняя

Ваши права

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