PDA

Просмотр полной версии : Codesys через Wine



slonegd
10.05.2017, 15:11
Доброе.
Слетел у меня в очередной раз виндовс, решил поставить Линукс Минт, и мне всё это дело очень понравилось, что и рабочий ноут решил перевести на линукс (правда лубунту, ибо старенький). Возникла проблема с работой codesys 2 через вайн. Он установился с библиотеками и таргетом ПЛК без проблем вообще. Проекты пишутся и компилируются. Правда вот записать проект в ПЛК никак не выходит, так как не могу настроить com порт в вайне. Люди пишут, что настроить можно.
Что я делал:
прописал ссылку в dosdevices, как написано в мануале вайна.
права на работу с ком портами (dialout) дал
в реестре вайна дописал "Serial1"="COM1"
ком порт через переходник USB, драйвера в линуксе встали сами

Пока работаю виртуалбоксом, но это не очень удобно. Может кто подскажет, что ещё можно сделать?

Scream
10.05.2017, 15:51
Доброе.
Слетел у меня в очередной раз виндовс, решил поставить Линукс Минт, и мне всё это дело очень понравилось, что и рабочий ноут решил перевести на линукс (правда лубунту, ибо старенький). Возникла проблема с работой codesys 2 через вайн. Он установился с библиотеками и таргетом ПЛК без проблем вообще. Проекты пишутся и компилируются. Правда вот записать проект в ПЛК никак не выходит, так как не могу настроить com порт в вайне. Люди пишут, что настроить можно.
Что я делал:
прописал ссылку в dosdevices, как написано в мануале вайна.
права на работу с ком портами (dialout) дал
в реестре вайна дописал "Serial1"="COM1"
ком порт через переходник USB, драйвера в линуксе встали сами

Пока работаю виртуалбоксом, но это не очень удобно. Может кто подскажет, что ещё можно сделать?

Заливать через ethernet не проще? Что за ПЛК?

slonegd
10.05.2017, 15:55
ПЛК-73, так что никак через ethernet.

AndreyS
10.05.2017, 21:34
Честно скажу, что через serial не пробовал работу в CDSv2.3. Не было необходимости.
Но настраивал когда-то работу в другом ПО для работы с последовательным портом в wine.

ls -l ~/.wine/dosdevices ?

AndreyS
10.05.2017, 21:45
Сейчас попробовал прошить ПЛК110 через RS232, тоже среда без проблем подключилась к ПЛК. Думаю, что с ПЛК73 тоже должно работать.
Посмотрел распайку кабеля программирования, используются лишь сигналы RX и TX (никаких CTS/RTS), поэтому проблем, в принципе, не должно быть.

slonegd
11.05.2017, 07:50
ls -l ~/.wine/dosdevices

lrwxrwxrwx 1 slonegd slonegd 10 май 5 09:23 c: -> ../drive_c
lrwxrwxrwx 1 root root 12 май 5 10:16 com1 -> /dev/ttyUSB0
lrwxrwxrwx 1 slonegd slonegd 8 май 5 09:23 d:: -> /dev/sr0
lrwxrwxrwx 1 slonegd slonegd 1 май 5 09:23 z: -> /

Быть может причина неработоспособности в том что у меня через переходник USB-COM? Вы проверяли на реальном порту?

AndreyS
11.05.2017, 08:39
У меня тоже преобразователь USB-COM.
Почему lrwxrwxrwx 1 root root 12 май 5 10:16 com1 -> /dev/ttyUSB0 владелец root?
Поправь на себя.

У вас индикация активности есть на преобразователе? Если есть, то обрати внимание на индикацию активности при попытке подключения из CODESYS. Если на этом преобразователе нет, но есть на другом (например, USB-RS485), рекомендую попробовать его. Понятно, что CODESYS не подключится, но ты увидишь попытку подключения, как минимум.
Если есть под рукой два USB-RS232, то можно один к другому подключить и посмотреть каким-нибудь терминалом (minicom, picocom) получаемые данные.

Приведи на всякий случай вывод следующих команд:
ls -l /dev/ttyUSB*
id

slonegd
16.05.2017, 10:44
Фух. Отпишусь на какие грабли наступал, вдруг кому понадобится.
Как заметил AndreyS, у меня владелец был root, что неверно. Как так вышло, не помню, но когда всё сделал по новому, то стал владельцем сам.
В параметрах подключения в codesys надо выставить Gateway Local.
На компе, у которого есть физический ком порт всё заработало.
На ноуте, где порта нет, пришлось удалить /dev/ttyS0 и сделать ссылку с /dev/ttyUSB0 на /dev/ttyS0 (при этом символьная ссылка в dosdevices именно с ttyUSB0)
Где тут логика, я не понимаю вообще, но работает.

melky
16.05.2017, 10:54
з.ы. а если пойти чуть дальше и сделать правило в udev, чтобы обращаться потом не к ttyUSBх а например к /dev/COM1 то будет вообще прекраснее...

USB переходник правилами можно привязать так, что в зависимости от подключаемого порта он всегда будет COM1, СОМ2 и так далее.

но это же делать надо и разбираться.....
А если хороший преобразователь и еще имеет серийный номер, то вообще не завися от подключенного порта USB он всегда будет например /dev/COM5...

AndreyS
16.05.2017, 20:53
На ноуте, где порта нет, пришлось удалить /dev/ttyS0 и сделать ссылку с /dev/ttyUSB0 на /dev/ttyS0 (при этом символьная ссылка в dosdevices именно с ttyUSB0)
Где тут логика, я не понимаю вообще, но работает.
Уверен абсолютно, что дело не в этом было. Всегда работал только с USB-COM преобразователями и всегда (собственно как и сейчас) работала просто символическая ссылка на нужный порт.

lrwxrwxrwx 1 andrey andrey 12 May 2 2016 com1 -> /dev/ttyUSB0

slonegd
17.05.2017, 17:20
А какой дистрибутив у вас? Меня смущает, что в /dev у меня куча ttyS*, хотя их нету физически.
Странное дело: удаляю ссылку dev/ttyS0 -> /dev/ttyUSB0 - не работает, добавляю - работает.
Повторил вот прямо сейчас, всё тоже самое.
Не могли бы еще показать права на /dev//ttyUSB0 и /dev/ttyS0 ?

AndreyS
18.05.2017, 10:01
А какой дистрибутив у вас? Меня смущает, что в /dev у меня куча ttyS*, хотя их нету физически.
Странное дело: удаляю ссылку dev/ttyS0 -> /dev/ttyUSB0 - не работает, добавляю - работает.
Повторил вот прямо сейчас, всё тоже самое.
Не могли бы еще показать права на /dev//ttyUSB0 и /dev/ttyS0 ?

Много это сколько? Если четыре, то это нормально. Платформа PC имеет четыре последовательных порта, не факт, что они физически присутствуют на плате.
Проблема скорее всего не в ссылке с /dev/ttyS0 -> /dev/ttyUSB0.
Куда у вас указывает ~/.wine/dosdevices/com1? Она должна указывать на ваш преобразователь /dev/ttyUSB0.

Дистрибутив Debian Stretch 9.0. Права обычные, никаких дополнительных конфигураций с udev не делал:
crw-rw-rw- 1 root dialout 188, 0 май 16 17:24 /dev/ttyUSB0

Вы состоите в группе dialout?

slonegd
18.05.2017, 13:04
32 у меня tty. Пробовал на debian 8 и lubuntu 17, одинаково.
Вот лог

[ 59.640198] pl2303 3-1:1.0: pl2303 converter detected
[ 59.662404] usb 3-1: pl2303 converter now attached to ttyUSB0
apw@apw-AO725:~$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 май 18 12:57 /dev/ttyUSB0
apw@apw-AO725:~$ ls -l ~/.wine/dosdevices
итого 0
lrwxrwxrwx 1 apw apw 10 май 11 07:38 c: -> ../drive_c
lrwxrwxrwx 1 apw apw 12 май 16 09:22 COM1 -> /dev/ttyUSB0
lrwxrwxrwx 1 apw apw 20 май 12 14:09 d: -> /media/apw/944E-7852
lrwxrwxrwx 1 apw apw 9 май 12 13:36 d:: -> /dev/sdb1
lrwxrwxrwx 1 apw apw 8 май 12 13:36 e:: -> /dev/sdb
lrwxrwxrwx 1 apw apw 1 май 11 07:38 z: -> /
apw@apw-AO725:~$ id
uid=1000(apw) gid=1000(apw) группы=1000(apw),4(adm),20(dialout),24(cdrom),26(t ape),27(sudo),29(audio),30(dip),46(plugdev),110(ne tdev),118(lpadmin),124(sambashare),125(vboxusers)

AndreyS
18.05.2017, 13:44
32 у меня tty. Пробовал на debian 8 и lubuntu 17, одинаково.
Вот лог
32 tty - это не проблема. У меня их вообще 64.
/dev/tty+[0-9] - это виртуальные устройства терминала. Они к последовательным портам не имеют никакого отношения.

/dev/ttyS* у вас сколько? Наверняка, всего лишь четыре.

Я вижу, что у вас регистр отличный от моего. Попробуйте сменить.

lrwxrwxrwx 1 developer developer 12 апр 22 2015 com1 -> /dev/ttyUSB0

slonegd
18.05.2017, 15:36
Надо же, строчными написал, всё работает.
ttyS* у меня 32 на лубунте, 4 на дебиане. В прошлом сообщении S потерялась.
Спасибо, что помогли.

AndreyS
18.05.2017, 16:23
Не за что. Теперь осталось разобраться, как запустить CODESYS V3 под Wine (http://www.owen.ru/forum/showthread.php?t=26735).

_Pavel_
10.06.2017, 22:33
Коллеги, подскажите пожалуйста, может кто сталкивался. Установил CDS 2.3 под Linux, всё работает. Но есть одна серьёзная проблемка: при вводе ST-кода не отображается список переменных ФБ после нажатия точки, как будто не работает опция "интеллектуальный ввод", хотя галка соответствующая в опциях стоит. Ооочень не удобно... У кого-нить было такое? Как лечить?
ЗЫ: юзаю Mint последний, cinnamon и xfse...