PDA

Просмотр полной версии : Файловый менеджер на Delphi на основе утилиты plc_io



kandiral
04.05.2012, 18:06
Выкладываю разработанную мною утилитку на Delph 7 с исходниками.
Может кому сгодится.

Все операции с контроллером производятся с помощью plc_io.exe

Если есть в этом смысл:rolleyes: , возможно в будущем доработаю.

MasterDarius
28.04.2016, 23:00
Спасибо. Ты офигенно облегчил жизнь. Этот контроллер постоянно отваливается. Твоя утилита просто спасла. Программистов нет, исходников нет, а прогу надо сохранить, никак не удавалось скопировать, а с помощью твоей утилиты получилось. Здоровья тебе, ты человек с большой буквы.

kandiral
24.10.2016, 05:43
Новая версия программы PLCCommander 2.0
плюс исходники

DmitriiAnyushin
29.10.2016, 09:59
kandiral, пытаюсь подключиться с помощью вашей программы к контроллеру ПЛК110-60 [М02], но он выдает сообщение "[100] Неизвестная ошибка! {}", как при подключении через TCP/IP так и через СОМ. Скажите, есть ли какие-то особенности при подключении? Спасибо!

kandiral
29.10.2016, 13:39
kandiral, пытаюсь подключиться с помощью вашей программы к контроллеру ПЛК110-60 [М02], но он выдает сообщение "[100] Неизвестная ошибка! {}", как при подключении через TCP/IP так и через СОМ. Скажите, есть ли какие-то особенности при подключении? Спасибо!

В правом окне в нижней части отображаются логи. Что-бы лучше понять причину ошибки нужно значь содержимое логов.

Программа является надстройкой для утилиты plc_io. То есть, все операции с контроллером производятся через данную утилиту. Я прикрепил инструкцию к этой утилите.

100 – произошла ошибка связи ПК с ПЛК (например, недоступен COM# порт или заданный IP#адрес);

Как вариант можно попробовать подключится через командную строку. Утилита должна находится в папке с программой
c:\Program Files (x86)\PLCCommander\plc_io.exe
или
c:\Program Files\PLCCommander\plc_io.exe

Попробуйте выполнить команду для TCP/IP
plc_io.exe /TCP10.0.6.10 /dir
или для COM порта
plc_io.exe /COM1 /dir
IP-адрес и номер COM порта прописывайте свои


Сообщите, пожалуйста, о результате

DmitriiAnyushin
29.10.2016, 14:10
Когда я запускаю plc_io.exe (и через Explorer и через Тотал) быстро открывается и закрывается черный экран и больше ничего не происходит. И естественно все те команды которые указаны в документации я прописать не могу. Подскажите, что я делаю не так? Спасибо!

kandiral
29.10.2016, 14:21
Когда я запускаю plc_io.exe (и через Explorer и через Тотал) быстро открывается и закрывается черный экран и больше ничего не происходит. И естественно все те команды которые указаны в документации я прописать не могу. Подскажите, что я делаю не так? Спасибо!

plc_io - это консольная программа, ее нужна запускать из командной строки(cmd). То есть сначала нужно запустить консоль cmd.exe, а в ней запускать plc_io с параметрами. Желательно cmd запускать от имени администратора. Кстати и PLCCommander можно попробовать запустить от имени администратора.

DmitriiAnyushin
29.10.2016, 16:26
Я разобрался с программой - в логах почему-то не обновляется IP-адрес
27341
Однако, даже если я просто с помощью PLC_IO загружаю созданные файлы .PRG и .CHK в контроллер, то она не работает. В контроллере М01 все работало

kandiral
29.10.2016, 18:23
Исправил ошибку изменения IP адреса и порта. И перезалил инсталятор с исходниками (http://www.owen.ru/forum/showthread.php?t=12615&p=224691&viewfull=1#post224691)
Переустановите программу, должна работать.

Для заливки в контроллер используется старая версия утилиты plc_io_old

DmitriiAnyushin
02.11.2016, 08:46
Большое спасибо, все работает!
Один вопрос - не помню уже как (может с помощью plc_io, может с помощью вашей программы, загрузил в контроллер файл ".PRG"на русском языке и с пробелами). При попытке удалить данный файл и программа и plc_io выдают 112 ошибку (невозможно удалить файл на ПЛК). Подскажите пожалуйста, можно ли каким-нибудь образом удалить данный файл? Спасибо!

kandiral
02.11.2016, 11:03
Большое спасибо, все работает!
Один вопрос - не помню уже как (может с помощью plc_io, может с помощью вашей программы, загрузил в контроллер файл ".PRG"на русском языке и с пробелами). При попытке удалить данный файл и программа и plc_io выдают 112 ошибку (невозможно удалить файл на ПЛК). Подскажите пожалуйста, можно ли каким-нибудь образом удалить данный файл? Спасибо!

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

DmitriiAnyushin
02.11.2016, 11:36
Я правильно понял? Файл "АВР (ОВЕН110).PRG"
27406

capzap
02.11.2016, 11:40
Я правильно понял? Файл "АВР (ОВЕН110).PRG"
27406
Вам что лень зайти через КДС и удалить через браузер?

kandiral
02.11.2016, 12:01
Я правильно понял? Файл "АВР (ОВЕН110).PRG"
27406

Не два раза в кавычки, а один

DmitriiAnyushin
02.11.2016, 12:51
Ну я изначально так и делал, откуда у меня этот вопрос и возник
27409
Ну ладно, это не столь критично, просто не понятно, почему plc_io дает возможность по-простому записать, а удалить невозможно

DmitriiAnyushin
02.11.2016, 15:16
Вам что лень зайти через КДС и удалить через браузер?
Содержимое контроллера
27415
Пытаюсь удалить
27416
Или без кавычек
27417
Подскажите где ошибка?

kandiral
03.11.2016, 17:34
Ну я изначально так и делал, откуда у меня этот вопрос и возник
27409
Ну ладно, это не столь критично, просто не понятно, почему plc_io дает возможность по-простому записать, а удалить невозможно


Действительно файл с пробелом в названии невозможно удалить ни через plc_io, ни через ПЛК-браузер в Codesys. Проблема не в русских символах, а именно в пробеле.
Единственный способ которым удалось удалить файл с помощью программы закаченной в контроллер

PROGRAM PLC_PRG
VAR
ton1: TON;
b,b1: BOOL:=TRUE;
END_VAR

ton1(IN:=TRUE,PT:=T#3s);
IF ton1.Q AND b THEN
b:=FALSE;
b1:=SysFileDelete('АВР (ОВЕН110).PRG');
END_IF

Также к проекту нужно подключить библиотеку SysLibFile

DmitriiAnyushin
07.11.2016, 09:17
Действительно файл с пробелом в названии невозможно удалить ни через plc_io, ни через ПЛК-браузер в Codesys. Проблема не в русских символах, а именно в пробеле.
Единственный способ которым удалось удалить файл с помощью программы закаченной в контроллер

PROGRAM PLC_PRG
VAR
ton1: TON;
b,b1: BOOL:=TRUE;
END_VAR

ton1(IN:=TRUE,PT:=T#3s);
IF ton1.Q AND b THEN
b:=FALSE;
b1:=SysFileDelete('АВР (ОВЕН110).PRG');
END_IF

Также к проекту нужно подключить библиотеку SysLibFile

Большое спасибо! Все получилось!

kandiral
09.12.2016, 14:52
Подробное описание программы и последнюю версию с исходниками можно найти тут
http://kandiral.ru/delphi/plccommander.html (https://kandiral.ru/delphi/plccommander.html)