PDA

Просмотр полной версии : Протокол чтения/записи ПЛК



dudanov
18.12.2014, 12:51
Есть идея написания на языке Java библиотеки для работы с ПЛК по части чтения/записи файлов. Хочу действительно кроссплатформенное решение, работающее на любой ОС, поэтому запуск процесса исполняемых файлов ОС Windows не предлагать.

Вопрос к компании ОВЕН: где можно взять описание протокола обмена файлами либо исходные коды утилиты plc_io?

Спасибо.

capzap
18.12.2014, 12:58
http://www.owen.ru/forum/showthread.php?t=14319&p=144478&viewfull=1#post144478 а это видели?

dudanov
18.12.2014, 14:14
http://www.owen.ru/forum/showthread.php?t=14319&p=144478&viewfull=1#post144478 а это видели?
Посмотрел. Это же я так понял самописный модуль в программу ПЛК для приема файлов по сети через Сокеты. Что за Transfer.jar? Тоже самописный? Что за протокол передачи?

Почему бы не использовать простой TFTP? И реализация простая и выполняет требуемый функционал на все 100. Думаю использование открытых простых протоколов упростит жизнь многим, тем более зачем изобретать велосипед?

Yegor
18.12.2014, 14:50
где можно взять описание протокола обмена файлами либо исходные коды утилиты plc_io?В открытом доступе — нигде. Однако добро пожаловать в мою дохлую жежешечку: http://yegorpetrov.livejournal.com/2401.html

dudanov
18.12.2014, 15:27
В открытом доступе — нигде. Однако добро пожаловать в мою дохлую жежешечку: http://yegorpetrov.livejournal.com/2401.html

Прочитал статью, спасибо. Разобраться бы с передачей файлов... Не хочется ковыряться в Wireshark'е...

capzap
18.12.2014, 15:53
посмотрите реализацию ftp в бибке ОСКАТ, зачем эти сложности сосвистываться по протоколу, когда можно просто передать массив байт. ПЛК1хх неимеют полноценной ОС, поэтому реальзация различных протоколов довольно сложная

Yegor
18.12.2014, 16:36
Прочитал статью, спасибо. Разобраться бы с передачей файлов... Не хочется ковыряться в Wireshark'е...А какая вообще цель стоит? Для чего вам файлы из под других платформ перетаскивать? Я бы, может, и доделал, если вы что-то интересное (в моём видении) задумали.

drvlas
22.01.2015, 01:06
А какая вообще цель стоит?Ну, вспомни, как год назад выручил меня с програмкой LogParser (Спасибо еще раз!) Она чудненько считывает файлы из ПЛК100, но при этом запускает знаменитую "недоделку (http://www.owen.ru/forum/showthread.php?t=18151&highlight=plc_io)" plc_io.exe.
Теперь я захотел запускать тот же LogParser из Линукса. И что? Кроме (вполне естественного) отвращения к "недоделке" теперь еще и чужая для .ЕХЕ платформа... Я как раз Python осваиваю, дай, думаю, повторю твой великодушный подарок на нем. Вот и набрел на эту тему от коллеги dudanov-а.
Так что да, читать файлы из ПЛК напрямик, без КДС, без plc_io.exe - хотелось бы.

capzap
22.01.2015, 06:39
Ну, вспомни, как год назад выручил меня с програмкой LogParser (Спасибо еще раз!) Она чудненько считывает файлы из ПЛК100, но при этом запускает знаменитую "недоделку (http://www.owen.ru/forum/showthread.php?t=18151&highlight=plc_io)" plc_io.exe.
Теперь я захотел запускать тот же LogParser из Линукса. И что? Кроме (вполне естественного) отвращения к "недоделке" теперь еще и чужая для .ЕХЕ платформа... Я как раз Python осваиваю, дай, думаю, повторю твой великодушный подарок на нем. Вот и набрел на эту тему от коллеги dudanov-а.
Так что да, читать файлы из ПЛК напрямик, без КДС, без plc_io.exe - хотелось бы.

как я уже говорил открывайте сокет и передавайте что угодно и куда угодно, та же не доделанная прога занимается тем же только на другом уровне

drvlas
22.01.2015, 11:03
как я уже говорил открывайте сокет и передавайте что угодно и куда угодноТо есть, нужно в ПЛК запустить сервис, который будет общаться по Tcp/ip. Верно я понимаю слова "откройте сокет"? Если да, то можно будет разобраться с нюансами.

Но вообще-то, когда мы обращаемся к ПЛК из plc_io.exe, мы и не рассчитываем, что нас там ждут. Просто получаем доступ к файлам ПЛК, можем читать-писать-создавать-уничтожать... Записанная в ПЛК пользовательская программа может и не подозревать, что у нее под носом ктой-то чевой-то делает :) Верно ли я понял из блога коллеги Yegor-а, что вот именно такой доступ к файлам ПЛК (a-la plc_io.exe) в некотором роде закрыт и нужно использовать "хак" Yegor-а для этих "чевой-то"?

Yegor
22.01.2015, 11:48
Выйду с больничного - займусь, если время найдётся. Дома контроллеров нет.

И да, если в протоколе до конца разобраться, то от ПЛК ничего лишнего не требуется, и можно прямо с рантаймом работать.

capzap
22.01.2015, 12:15
То есть, нужно в ПЛК запустить сервис, который будет общаться по Tcp/ip. Верно я понимаю слова "откройте сокет"? Если да, то можно будет разобраться с нюансами.

Но вообще-то, когда мы обращаемся к ПЛК из plc_io.exe, мы и не рассчитываем, что нас там ждут. Просто получаем доступ к файлам ПЛК, можем читать-писать-создавать-уничтожать... Записанная в ПЛК пользовательская программа может и не подозревать, что у нее под носом ктой-то чевой-то делает :) Верно ли я понял из блога коллеги Yegor-а, что вот именно такой доступ к файлам ПЛК (a-la plc_io.exe) в некотором роде закрыт и нужно использовать "хак" Yegor-а для этих "чевой-то"?

это в своем примере открыл сокет чтоб что то принять, но если в ОС просто слушается порт и когда в него кто то стучится, да еще и с определенным маячком,разве ось не поймет,что сейчас начнется работа с файлами

drvlas
22.01.2015, 12:57
Выйду с больничного - займусьВыздоравливай поскорее :)

2 capzap: вот я попробую понять, что же можно сделать. Ибо, как я уже убедился, все Великие Консультанты говорят скупо, рассчитывая на гениев с другой стороны провода (Валенок - тот вааще виртуоз загадок!) А здесь не всегда гении, иногда я :)
То есть, если я ща возьму либу soket из того же python-а, задам IP своего ПЛК, укажу порт 20 (да?) и дам команду FTP на чтение файла - ПЛК вдруг может и ответить? Или что за маячок еще надо из рукава достать?

capzap
22.01.2015, 13:02
нет в плк1хх фтп сервера,пока в проге не реализуете, ни кто не ответит
а поповоду маячка,это что то вроде: Вас схватили за грудки, и Вы понимаете что сейчас точно не зарплату будут выдавать, а либо люлей дадут,либо телефон отожмут

Вольд
22.01.2015, 13:06
А почему вы решили работать на Python ? Python - интерпретируемый язык программирования и это его серьезный недостаток (программа исполняется медленно). Почему не Microsoft Visual C# ?

drvlas
22.01.2015, 13:33
Python - интерпретируемый язык программирования и это его серьезный недостатокКоллега, оффтопим... Но отвечу. "Скорость исполнения" - вещь оооочень относительна. Грубо говоря, я и глазом не успею моргнуть, когда Пайтон уже много чего сделает. А интерпретируемость дает и много выгод.
С виндозными приложениями стараюсь не иметь дела. Такая у меня прихоть.

Вольд
22.01.2015, 13:43
"Скорость исполнения" - вещь оооочень относительна. Грубо говоря, я и глазом не успею моргнуть, когда Пайтон уже много чего сделает.
При большом размере кода устанете моргать.

drvlas
02.02.2015, 14:09
Теперь я захотел запускать тот же LogParser из Линукса.
...
Так что да, читать файлы из ПЛК напрямик, без КДС, без plc_io.exe - хотелось бы.
Докладываю: уже расхотелось.
Нет, конечно же, поиски уважаемого Yegor-а (как здоровье?) только приветствуются, ибо чем больше будем знать про связь с ПЛК - тем лучше. Но, если говорить о практической потребности сию минуту, то лично я пошел другим путем.
Програмку, подобную Logparser (http://owen.ru/forum/showthread.php?t=16563&page=9), я на Пайтоне накатал. И вопрос с протоколом CoDeSys решил просто: так же, как и Yegor, запускаю из своего приложения plc_io.exe. Причем при работе под Линуксом - через Wine. Работает без проблем. Так что обращаться к ПЛК вполне можно.

Yegor
02.02.2015, 14:51
как здоровье?Оки! Только сейчас основной работы по горло. Сам-то я хотел бы из под андроида обращаться, между прочим.