Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Проблемы с TwinCAT, Proxmox и изолированными ядрами на Windows. В последнее время столкнулся с интересными сложностями при работе с TwinCAT в связке с Proxmox и изолированными ядрами Windows. Похоже, что не всё так гладко, как хотелось бы. Вкратце о сит

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Проблемы с TwinCAT, Proxmox и изолированными ядрами на Windows. В последнее время столкнулся с интересными сложностями при работе с TwinCAT в связке с Proxmox и изолированными ядрами Windows. Похоже, что не всё так гладко, как хотелось бы. Вкратце о сит, Proxmox Виртуальная Среда
     
    flrnwgnr
    Guest
    #1
    0
    06.10.2021 09:27:00
    Привет, у меня какие-то странные проблемы с TwinCAT (TC) в Windows-VM. Поскольку эти проблемы не возникают с другим гипервизором (vmware ESX или HyperV), я подозреваю, что проблема связана с Proxmox, KVM и/или их реализацией вложенности. Но сперва – сперва: я сейчас в процессе установки TwinCAT runtime в Windows 10-VM. Для тех, кто не знаком с TwinCAT: "Windows Control and Automation Technology", TwinCAT, – это ведущее программное обеспечение для soft-PLC, которое делает Windows способной к работе в реальном времени благодаря расширению ядра. Самое важное требование для 64-битных систем – доступ к расширению виртуализации "VT-x". Затем есть два режима работы TwinCAT: "shared core" или "isolated core". В режиме "shared core" TC совместно использует процессорный ядро с Windows, и обе попеременно выделяют время на вычисления. В режиме "isolated core" Windows настроена на использование на один ядро меньше, чем предоставляет CPU. Это "выделенное" ядро может затем использоваться исключительно TwinCAT (например, CPU на 4 ядра: Windows использует 3 ядра, а TwinCAT использует четвертое). Также этот метод – единственный способ запуска TwinCAT в 64-битной VM; "shared core" доступен только на 32-битных VM. Однако, именно здесь и кроется проблема: в 64-битной Windows VM с включенной вложенностью и режимом работы "isolated core" (4 ядра в Proxmox, 3 для Windows и одно для TwinCAT) PLC можно запустить и он работает без проблем. Нагрузка на CPU всех ядер увеличивается с 16% в режиме ожидания примерно до 19% (видно в Proxmox). Но когда я останавливаю PLC, загрузка CPU скачет на ровно 25% - выделенное ядро загружено на 100%. После этого TC больше не запускается и выдает сообщение "startup of isolated core failed". Ядро висит и остается в этом состоянии до перезагрузки VM. Однако, такая же идентичная система конфигурация (64-Bit, Win10S, nesting enabled) прекрасно работает, если используется другой гипервизор, например vmware ESX, HyperV или VirtualBox – PLC можно запускать и останавливать несколько раз. У кого-нибудь здесь был подобный опыт? Возможно ли, что в Proxmox или KVM есть ошибка, особенно когда ядро не используется Windows? Спасибо!

    __ Конфигурация VM: (Самое важное – это строка "args": TwinCAT не хочет запускаться без нее, даже если cpu-config имеет те же флаги)

    Code:
    agent: 1
    args: -cpu 'host,+pcid,+spec-ctrl,+ssbd'
    boot: order=ide0;net0
    cores: 3
    cpu: host,flags=+pcid;+spec-ctrl;+ssbd
    efidisk0: local-lvm:vm-100-disk-1,size=4M
    ide0: local-lvm:vm-100-disk-0,size=32G
    kvm: 1
    machine: pc-i440fx-6.0
    memory: 8192
    name: Win10Eval-1
    net0: virtio=0A:B1:A8:80:8F:ED,bridge=vmbr1,firewall=1
    numa: 1
    ostype: win10
    parent: Ausgangsbedingungen
    scsihw: virtio-scsi-pci
    smbios1: uuid=c01feef2-02...
    sockets: 1
    vmgenid: 50f30ea3...
     
     
     
    0111
    Guest
    #2
    0
    22.01.2022 23:08:00
    Приветствую! Полный отказ от ответственности: я на самом деле не использую Proxmox и мало что о нем знаю. У меня возникла какая-то проблема с моим гипервизором при попытке запуска TwinCAT в гостевой Windows 10 Pro. Я использую Debian 10 как хостовую систему. Гипервизор – kvm+qemu. У меня процессор Intel Core i5 k-серии, поэтому я не могу делать PCI pass-through. 32 ГБ ОЗУ DDR3. Я использую virt-manager для управления XML-файлами. Я использую spice server для графики и управления вводом/выводом гостевых систем. У меня установлено 15 гостевых систем: смесь Windows 2000, Debian 10, Debian 11, Ubuntu какой-то, Windows 10 Pro. Не все из них работают одновременно. Диски загрузки находятся на двух NVME PCI M.2 дисках, используя LVM. Хранение данных находится на трех корпоративных SATA дисках, формирующих BTRFS raid 5 том на хосте. Изначально моя проблема заключалась в том, что при переходе из режима конфигурирования в режим работы в гостевой Windows 10 Pro TwinCAT зависал, а затем гостевая система перезагружалась (вылетала). Получилось запустить только сегодня. Оказывается, система безопасности под названием Blue Iris тоже вылетала при свежей установке на Windows 10 Pro. На форумах мне посоветовали передавать хосту параметр ядра, чтобы отключить MSRS, например, "cat 'options kvm ignore_msrs=1' >> /etc/modprobe.d/kvm.conf". Если коротко, то судя по моему пониманию ситуации, Blue Iris и TwinCAT запрашивают определенные регистры процессора, хотя на самом деле они не нуждаются в них. Игнорируя эти запросы, гостевая система просто продолжает работу, а Blue Iris и TwinCAT продолжают свою работу. Без этого отключенного, запросы обрабатываются, и "возможно", QEMU внедряет эту информацию в Windows 10, а Windows 10 паникует из-за внезапного изменения процессора, отсюда и сбои. Не знаю, решила ли это на самом деле мою проблему и насколько это надежно. Я просто протестировал с простым проектом TwinCAT "Hello World", и он не завис. Я смог войти, запустить код, начать и остановить выполнение, записать переменную и затем выйти.

    Main.tc binit : BOOL := 1;
    IF binit THEN
     binit := 0;
    END_IF

    Это все.
     
     
     
    flrnwgnr
    Guest
    #3
    0
    24.01.2022 13:51:00
    Привет, спасибо за ответ! Раз у тебя получилось запустить TwinCAT и твой гипервизор kvm+qemu (как в proxmox), можешь, пожалуйста, сделать небольшой тест? Мне просто интересно, получается ли у тебя запускать TwinCAT "дважды", потому что во всей моей среде вторая попытка всегда проваливается. Например: Запустить/Перезагрузить ВМ (значок TwinCAT должен быть синим/в режиме конфигурирования) "Активировать конфигурацию" (значок TwinCAT должен стать зелёным/РЕЖИМ РАБОТЫ) Вернуться в режим конфигурирования (значок снова синий) "Активировать конфигурацию" ещё раз (идеально, чтобы значок снова стал зелёным) В моем случае вторая попытка проваливается, и мне приходится перезагружать ВМ, чтобы снова перевести TwinCAT в РЕЖИМ РАБОТЫ. То же самое происходит у тебя с твоей установкой? Спасибо!
     
     
     
    0111
    Guest
    #4
    0
    03.02.2022 02:26:00
    Окей, можешь подтвердить, что `ignore_msrs=1` оказало положительное влияние? А по тесту:
    1. Я только что перезагрузил Windows VM и снова открыл проект, над которым сейчас работаю. Да, иконка синяя. На самом деле, она была синей ещё до открытия Visual Studio 2017. (Я забыл упомянуть это в прошлом посте. У меня не получается установить/зарегистрировать Visual Studio 2019).
    2. Я активирую свою конфигурацию и да, среда выполнения переходит в состояние зеленого/режим работы. Галочка для конфигурации загрузки не установлена. Значит, после перезагрузки ничего не работало. Но в режиме работы теперь работает, хотя я и нажимаю кнопку "Play", чтобы фактически запустить выполнение, так как она не запускается автоматически при загрузке.
    3. Я вхожу в PLC, чтобы начать выполнение, а затем выхожу.
    4. Я выбираю синюю иконку для возвращения в режим конфигурации, и она возвращается. Моя загрузка ЦП в TwinCat runtime падает с 1% до 0%.
    5. Я выбираю активацию конфигурации, и она снова становится зеленой.
    6. Я снова вхожу, чтобы начать выполнение и выхожу, когда заканчиваю смотреть переменные. Так что да, я могу легко переключаться без проблем. Но стоит отметить, что я не использую конфигурацию загрузки. Не знаю, важно ли это. Я активно разрабатываю приложение, поэтому постоянно переключаюсь без каких-либо проблем. Если не считать, что я использую указатели и интерфейсы, которые случайно записывают память, и да, среда выполнения аварийно завершается/останавливается, и мне приходится переходить в режим конфигурации, прежде чем я смогу снова активировать конфигурацию.
     
     
     
    flrnwgnr
    Guest
    #5
    0
    04.02.2022 14:07:00
    Не то что ты думаешь — TwinCAT я всё равно могу запустить только один раз. Ты используешь Windows 64-bit или 32-bit? Но это интересно! Я попробовал с твоим проектом, но всё равно получаю ошибку после запуска TwinCAT во второй раз. Можешь выложить свою VM-Config? Возможно, виноват proxmox, а не KVM..
     
     
     
    0111
    Guest
    #6
    0
    04.02.2022 18:27:00
    <features>
    <acpi/>
    <apic/>
    <vmport state="off"/>
    </features>
    <cpu mode="host-passthrough" check="partial"/>
    <clock offset="localtime">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
    </clock>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>destroy</on_crash>
    <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
    </pm>
    <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
    <driver name="qemu" type="qcow2"/>
    <source file="/mnt/vm/machines/development_plc_twincat.qcow2"/>
    <target dev="sda" bus="sata"/>
    <address type="drive" controller="0" bus="0" target="0" unit="0"/>
    </disk>
    <controller type="usb" index="0" model="qemu-xhci" ports="15">
    <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0"/>
    </controller>
    <controller type="pci" index="0" model="pci-root"/>
    <controller type="sata" index="0">
    <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>
    </controller>
    <interface type="network">
    <mac address="52:54:00:d7:49:ba"/>
    <source network="default"/>
    <model type="rtl8139"/>
    <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
    </interface>
    <input type="tablet" bus="usb">
    <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <graphics type="spice" autoport="yes">
    <listen type="address"/>
    </graphics>
    <sound model="ich9">
    <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
    </sound>
    <video>
    <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
    <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
    </video>
    <redirdev bus="usb" type="spicevmc">
    <address type="usb" bus="0" port="2"/>
    </redirdev>
    <memballoon model="virtio">
    <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0"/>
    </memballoon>
    </devices>
    </domain>
     
     
     
    aksu
    Guest
    #7
    0
    07.04.2022 14:21:00
    Привет! Интересно, удалось ли тебе запустить TwinCat3 в среде Proxmox? Я пытаюсь настроить свою виртуализацию, но когда пытаюсь запустить рантайм, получаю следующую ошибку от TwinCat: "Init4\RTime: Start Interrupt: Ticker started >> AdsError: 4116 (0x1014, RTIME: enter real-time mode fails!)" Были ли у тебя подобные проблемы? Какие-нибудь идеи, как от них избавиться?
     
     
     
    flrnwgnr
    Guest
    #8
    0
    07.04.2022 15:41:00
    Попробуйте использовать изолированное ядро внутри вашего TwinCAT-проекта/VM.
     
     
     
    aksu
    Guest
    #9
    0
    08.04.2022 09:14:00
    Я пробовал это в двух разных версиях/установках Windows 10, и вот теперь мне удалось запустить TC3-среду на одной из них (после настройки изолированного ядра для проекта TC3). Runtime запускается, и всё работает отлично после загрузки Windows, НО если я пытаюсь перезапустить runtime, я получаю две одинаковые ошибки: Но если я загружаю машину, runtime стартует и работает отлично снова. Есть какие-нибудь идеи, как заставить это работать "как положено"?
     
     
     
    flrnwgnr
    Guest
    #10
    0
    08.04.2022 11:21:00
    Это та же проблема, с которой я столкнулся, и я так и не нашёл решения. Кажется, всё работает при использовании только KVM (без Proxmox), значит, проблема, скорее всего, в Proxmox..
     
     
     
    iff7378
    Guest
    #11
    0
    07.02.2025 16:34:00
    У меня та же проблема. В этом случае, когда я переключаюсь из режима "run" в режим "config", виртуальная машина Windows сразу же вылетает и перезагружается. Похоже, здесь решения пока не нашли?
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры