PDA

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



Alex66
19.02.2007, 13:24
Нужно "не используя" CodeSys (при помощи его библиотек) скачать файл архива из памяти ПЛК на диск компьютера! Help me!

Малышев Олег
19.02.2007, 15:34
Варинтов несколько...
1) Покупаете Gateway SDK... разбираетесь - скачиваете
2) Если файл текстовый - можно скачать по http см. пример WebServer
3) Если файл бинарный тоже но нужно в код WebServer добавить процедуру uuencode
4) Реализуете Ваш любимый протокол (ftp, Xmodem, ... ) c помощью библиотек SysLibCom,SysLibSockets и SysLibFile

Alex66
20.02.2007, 11:02
Попрошу примерчик по пункту - 4.
Заранее блогодарен!

Малышев Олег
20.02.2007, 14:56
Попрошу примерчик по пункту - 4.
Заранее блогодарен!

Не совсем понятно чем не устраивает протокол HTTP, а насчет примера - все же уточните - какой интерфейс - Ethernet или последовательный, какой протокол...?

Alex66
21.02.2007, 16:45
PLC100-R соединён с ПЭВМ по RS-232 ....

Малышев Олег
22.02.2007, 10:12
PLC100-R соединён с ПЭВМ по RS-232 ....

В принципе надо пробовать X,Y или Z модем.

Alex66
27.02.2007, 13:25
Для визуализации из ПЛК я использую HMI. На ПЛК ведётся файл архива,
его имя alarm.log, мне надо этот файл во время визуализации иногда скидывать на диск C:\ компютера оператора. Подскажите пожалуйста, как это лучше сделать? Может использовать SysFileCopyAsync или
библиотеку SysLibFileStream.lib. Если вас не затруднит, то примерчик.... (as_lr@tut.by)
Так же интересно какой путь к файлу на ПЛК прописывать?
ПЛК с компьютером оператора планируеся соединить по RS 232.

Малышев Олег
27.02.2007, 14:00
Для визуализации из ПЛК я использую HMI. На ПЛК ведётся файл архива,
его имя alarm.log, мне надо этот файл во время визуализации иногда скидывать на диск C:\ компютера оператора.
Если вас не затруднит, то примерчик.... (as_lr@tut.by)


Если Вы используете Codesys HMI лучшим вариантом будет использование
архива в trend. Для этого нужно подключить syslibalarmrend.sys.
Архив ведется на компьютере.

Библиотеки SysLibFileStream.lib SysFileAsync.lib не поддержаны


Несмотря на все не совсем все же понятно что надо. Возможно получится обойтись без программирования.

На ПЛК путь прописывать не надо. Только имя файла.

Alex66
27.02.2007, 15:12
Цель сей опперации состоит в том, чтобы на ПЛК постоянно "скрытно" от оператора вёлся файл аварий и некоторых ситуаций (компьютер оператора может быть и выключен при работающем ПЛК). В случае разногласий между разработчиком и заказчиком при эксплуатации оборудования управляемого ПЛК, этот файл можно было выкачать из ПЛК и проанализировать происходившие ситуации.

Филоненко Владислав
27.02.2007, 15:22
В этом случае вам необходим лишь CoDeSys, с помощью к-го можно залогиниться и скачать/закачать на ПЛК файлы.

Alex66
27.02.2007, 15:50
Вся проблема и заключается в том, что CoDeSys не должен стоять на компьютере оператора (там они продвинутые), ещё проект откроют..., а он будет там лежать - для визуализации в HMI!

Филоненко Владислав
27.02.2007, 16:28
1. Для визуализации можно все запаролить или использовать спец. программу, к-я умеет только визуализировать
2. В случае необходимости скачать файл можно прийти с ноутбуком, где стоит CoDeSys

Игорь Петров
03.03.2007, 13:26
1) Кстати есть такая штука PLCHandler (http://www.3s-software.com/index.shtml?ru_PLCHandler). С его помощью можно написать в MS Visual Studio C++ программу, которая сможет быстро напрямую (без OPC) управлять состоянием и залезать в данные любого ПЛК (не только Овен), запрограммированного в CoDeSys.
Комплект PLCHandler стоит 3000 Евро.

2) А надо ли здесь вообще в файл писать? Сделать структуру (дата/время, нужные значения…), объявить массив таких структур достаточного размера и писать в него циклически с нужным периодом. Т.е. новые данные постепенно затирают самые старые. Массив можно поместить в RETAIN память, дабы он не пропал при выключении. Отображение в HMI таблицей или трендами, можно в сделать отдельную визуализацию, дабы оператор туда не залез.

zilog
11.03.2007, 08:45
Варинтов несколько...
1) Покупаете Gateway SDK... разбираетесь - скачиваете
2) Если файл текстовый - можно скачать по http см. пример WebServer
3) Если файл бинарный тоже но нужно в код WebServer добавить процедуру uuencode
4) Реализуете Ваш любимый протокол (ftp, Xmodem, ... ) c помощью библиотек SysLibCom,SysLibSockets и SysLibFile

А где можно пример по пункту 2 посмотреть ?

Филоненко Владислав
12.03.2007, 12:44
А где можно пример по пункту 2 посмотреть ?
Внимание! Рекламная акция!
Меняем Ваш E-mail - на наш пример Web-server-a.

МИХАИЛ
12.03.2007, 12:50
Galant@kaluga.ru пожалуйста пример Web-server-a.
Заранее благодарен Михаил.

Малышев Олег
12.03.2007, 12:55
Сам пример можно запросить с plc@owen.ru
Для скачивания попробуйте
http://sources.ru/NonCGI/Forum2/HTML/000139.html

zilog
14.03.2007, 09:08
Будте добры на zilog_086@mail.ru скинте пример web-сервера

Евгений Пашигоров
26.03.2007, 16:50
однако же, вопрос остался висеть в воздухе.
как вытащить файл архива из плк, желательно одним щелчком мыши?

Alex66
26.03.2007, 17:50
Попрошу примерчик реализации протокола (ftp, ... ) c помощью библиотек SysLibCom,SysLibSockets и SysLibFile для скачивания текстового файла из ПЛК (работаю по Ethernet). Заранее благодарен.

Евгений Пашигоров
27.03.2007, 11:38
Так возможно ли программно вытащить файл архива из контроллера?
Интуитивно догадываюсь, что да (CoDeSys ведь это делать умеет!).
Ну так подскажите!
Должна же быть какая-то библиотека для доступа к файлам контроллера, раз к Codesys это смогли подключить.

Филоненко Владислав
27.03.2007, 11:40
библиотека есть, стоит то ли 3, то ли 10 тыс. евро!

Евгений Пашигоров
27.03.2007, 11:40
а скажите, под какой формат данных делали файл архива?
то, что он чисто текстовый, радует. но вот данные записаны не в очень удобной форме, да еще и в шестнадцатиричной системе.

Филоненко Владислав
27.03.2007, 11:58
наш собственный.
если вас есть предложения по формату - мы их с удовольствием рассмотрим и даже реализуем.

P.s. предложения типа чтоб удобно было или чтоб программа Xxx читала не рассматриваются.

Евгений Пашигоров
28.03.2007, 11:12
библиотека есть, стоит то ли 3, то ли 10 тыс. евро!
это сильно дорого.

не понимаю. вы же разработчики. файл создать можно. вытащить - нельзя.
зачем мне архив в контроллере? чтобы документировать технологический процесс. мне же надо строить таблицы, графики и т.п. на основе этого архива. что, в контроллере это делать?

Филоненко Владислав
28.03.2007, 11:56
у нас в наст. время разрабатывается маленькая утилита командной строки для этого

Евгений Пашигоров
29.03.2007, 10:36
у нас в наст. время разрабатывается маленькая утилита командной строки для этого
Это очень хорошо. А какие примерно сроки разработки?

Я запустил-таки веб-сервер. Статический html и файл архива он отдает без проблем (получается вытащить и обработать архив Перл-скриптом).
Но вот получить значения переменных не удается. Сервер вместо значения выдает "wrong symbol name". Я страничку оставил ту же, что и в примере веб-сервера, заменил только имена переменных на свои. Что еще надо было сделать?
(Это я уже пытаюсь визуализацию в браузере делать.)

Малышев Олег
29.03.2007, 10:50
Нужно сконфигурировать
1) В Project - Option - Symbol Configuration - Выделите нужные переменные - поставьте Read Access
2) В Resourses - Target Settings - Download Symbol File

Евгений Пашигоров
02.04.2007, 09:08
Да, так получилось. Переменные читаю.

В примере веб-сервера, насколько я понял, строится график четырех переменных. (у меня ничего не строится)
Честно говоря, в этом яваскрипте я ни фига не понимаю. Читал-читал про яваскрипт, что смог найти в Сети, нигде вообще нет даже упоминания, что можно нарисовать график (???). Подскажите, как нарисовать график овеновской переменной? Или где почитать?

Малышев Олег
02.04.2007, 16:39
Строится график именно одной переменной.
Вообщем рекомендация такая - поставьте себе браузер FireFox или другой на движке Mozzila. Лично мои попытки настроить пример с IE + Adobe SVG plugin провались. Проблема в правильной настройке системы безопасности браузера - т.е. доступа JavaScript к полям SVG объекта. Возможно что на IE - это вообще не разрешено...
Скажу честно - содрал эту технологию из
http://www.wpsenergy.com/JayNick/default.asp