August 10, 2018

Виртуальная машина с Windows CE и TwinCAT

Когда под рукой нет "реального железа" — можно обойтись локальным рантаймом. Когда нужен рантайм под Windows CE (WEC, Embedded Compact) — мы идем за виртуальной машиной. В моем случае — это Oracle VirtualBox. Бекхофф же предлагает образ под Virtual PC и нам это только на руку.

Качаем с сайта Бекхофф образ виртуальной машины для Virtual PC. Образов несколько, они предназначены для различных версий TwinCAT (2, 3) и WEC (6, 7). Я выбрал под WEC 7 с TwinCAT 2.11R3 NCI(!): Beckhoff_VPC_WEC7_HPS_v502a_TC211R3_B2247.zip. Полагаю, что для остальных версий ситуация схожая (upd 24 авг 2018: да, для WEC7 TC3.1 всё аналогично).
Сходу образ не запустился. Пришлось обновить Virtual Box версии 5.1 до последней версии 5.2.16. Возможно проблема исключительно в моих системных настройках, но я предупредил.
Какие настройки Virtual Box необходимо задать? Кстати, не обязательно такие, просто эти проверены, работают и взяты из оригинального образа Virtual PC:

Name (произвольное название): WinCE 7
Operationg System: Other Windows (32-bit)
Base Memory: 512 MB
Video Memory: 8MB (virtualbox будет ругаться, что этого мало для полноэкранного режима)
Network Adapter →
        Attached to: Bridget Adapter
        Advanced → Adapter Type: Intel PRO/1000 MT Desktop (82540em)

Главное правильно задайте сетевой адаптер. В дальнейшем он понадобится для связи с внешним миром, а в качестве жесткого диска используйте .vhd файл из образа виртуальной машины. Выберите при создании пункт: Use an existing virtual hard disk file.


После этого у вас должна нормально запуститься виртуальная машина с Windows Embedded Compact 7 и TwinCAT 2.11R3 NCI. Но(!) без сетевой карты. Печально, что инженеры подложили нам двух свиней: во первых, это специальная версия TwinCAT, которая будет останавливаться каждый сутки (TC Daily Drop); во вторых, не установлены сетевые драйверы, которые позволили бы нам подключить периферию, да и вообще хоть как-то использовать виртуальную машину в качестве ПЛК. Исправляем.

Нам необходимы драйверы сетевой карты Intel e1000 для Windows CE. Вообще, это редкость и всяческий раритет, но гугл в помощь. Я нашел и выкачал комплект драйверов на сайте HPC:Factor в виде единого файла e1000ce5leg.exe. В целях безопасности, мы не будем запускать исполнимые .exe файлы из неизвестных источников (нельзя собирать грибы в незнакомом лесу), а просто распакуем его с помощью 7zip. Ссылка на перепакованный архив в подвале статьи. На поверку, это оказался обычный .cab архив, завернутый в MSZip. Осталось закинуть полученные файла на виртуальную машину.

И теперь мы воспользуемся преимуществом, подаренным нам виртуальной машиной Virtual PC. Образ жесткого диска от виртуальной машины, мы просто подключим к обычной настольной операционке. У меня Windows 10 Home, как дела с более старыми версиями — подсказать не могу.
7-zip версии 18.05 умеет распаковывать .vhd архивы, но не умеет добавлять в них файлы. Возможно другие архиваторы умеют это делать, и вам не понадобятся следующие телодвижения с подключением виртуальных дисков.
Итак, нам нужно "Управление дисками". Правой кнопкой по меню Пуск → "Управление дисками" или правой же кнопкой по Этому компьютеру → "Управление", а дальше разберетесь.

В управление дисками выбрать "Действие" → присоединить виртуальный жесткий диск.

Создайте в корне диска какой-нибудь каталог (temp, net, drivers, произвольные латинские буквы-цифры... главное, название не забудьте). Пусть будет netdrivers. Скопируйте в этот каталог содержимое архива e1000ce5leg.zip. В списке дисков кликните правой кнопкой по виртуальному диску → отключить виртуальный диск. Теперь можно запускать виртуальную машину.

Доступа к сети все еще нет, но теперь у нас есть драйверы. Запустите проводник: Start → Run... → explorer. Перейдите в каталог drivers, выделите все файлы → Edit-Copy. Перейдите в \Hard Disk\System → Edit-Paste. Запустите файл \Hard Disk\System\E1000CE5.reg для активации драйверов. Система предложит перезагрузиться → соглашайтесь.

После загрузки вы получите доступ к локальной сети и все соответствующие плюшки. Можно доустановить недостающие компоненты (подключая-отключая виртуальный жесткий диск), а затем сделать экспорт виртуальной машины и поделиться уже готовым образом через File → Export Appliance... Каталог с распакованными файлами драйвера (netdrivers в моем примере) можно удалить.



Архив с драйверами доступен здесь: e1000ce5leg.zip [77 Кб]

9 comments

  1. Спасибо! Это удачно я зашел.

    ReplyDelete
  2. Виртуальная машина заработала и сеть тоже. Но из Twincat не могу подключиться, хотя Target вижу. Твинкат требует пароль для Administrator. Так и не понял как задать его в этой версии WinCE. Подскажите что делать?

    ReplyDelete
    Replies
    1. Пароль для WindowsCE/WEmbCompact по умолчанию пустой, то есть когда TwinCAT запрашивает логин-пароль, вы пишете логин Administrator, а поле пароль оставляете пустым. Если вам нужно сменить пароль, то лезьте в настройки пользователей операционной системы. Administrator это встроенная учетная запись Windows.

      А вообще, попробуйте создать роутинг вручную: ручками добавьте записи и под виртуальной машиной в WinCE, и на машине разработчика. Если после этого связи не будет - разбирайтесь с настройками локальной сети и фаерволом.

      Delete
    2. Пустой пароль я конечно сразу попробовал, не работало. Видимо не в этом дело, буду разбираться, спасибо!

      Delete
    3. Сначала создать роутинг вручную и посмотреть будет ли работать. Если не будет, то это сетевые настройки или файервол (что тоже настройки сети).

      Delete
  3. Заработало, спасибо!

    ReplyDelete
  4. Здравствуйте! Спасибо за статью. Сделал все как вы описали... Поставил Virtual Vox 5.2.16, создал новую виртуальную машину, подключил к ней Beckhoff WEC7 TwinCAT 2.11 R3 Hard Disk.vhd. При запуске система начинает грузиться, появляется начальное окно Windows и затем появляется сообщение "A critical error has occured while running the virtual machine and the machine execution has beenstopped". Пробовал с разными версиями Windows CE - одна и та же ошибка. Вы не могли бы подсказать в чем может быть проблема. Заранее спасибо!

    ReplyDelete
    Replies
    1. Проверить настройки в BIOS. Установить последние обновления ОС. Пере/установить последнюю версию Virtual Box. Проверить какой еще софт, требующий виртуализации, установлен в системе; удалить или смириться с несовместимостью.

      Delete
  5. Здравствуйте,
    а что вообще можно сделать с этим? что проверить?

    ReplyDelete

Note: Only a member of this blog may post a comment.