PDA

Просмотр полной версии : Чтение файлов в SCADA'е



VanoKing
09.08.2011, 07:51
Только приступил к изучению masterSCADA, все видео обучающие просмотрел. У меня вопрос: можно ли из скады открыть текстовый файл и считать информацию для записи в БД? Каким элементом палитры пользоваться?

SCADAMaster
09.08.2011, 08:21
В палитре ФБ есть ФБ "Сохранение в файле", который может как записывать так и считывать данные. Вы можете использовать только для чтения.
Формат файла - csv.
В этой статье описана работа с данным ФБ (страница 11)
http://www.masterscada.ru/services/support/art_step_by_step/Arc_MasterSCADA.pdf
Можно также прочитать в справке.

Если данный ФБ, не подойдет вам то опишите задачу подробнее

VanoKing
09.08.2011, 09:25
С чтением с ПК разобрался, спасибо!
Хочу реализовать чтение записанных файлов в ПЛК программой от ОВЕНА plc_io.exe, потом считать скадой. В ПЛК уже есть файлы, записал в формате csv. Считываю из windows - нормально. А из Скады не получается.
Есть в палитре служебные-> "Запуск процесса", никак не могу запустить plc_io, у него путь должен быть особенный или нельзя так сделать???

SCADAMaster
09.08.2011, 09:46
Есть в палитре служебные-> "Запуск процесса", никак не могу запустить plc_io, у него путь должен быть особенный или нельзя так сделать???
Вы указываете к нему путь на закладке "настройка", а также задаете параметры запуска, используя строку аргументов.
Файл запускается с указанными вами параметрами, и выполняет нужные действия.
Вы можете написать bat файл который будет считывать файлы из контроллера при помощи данной утилиты, а из скады запускать уже его.

VanoKing
09.08.2011, 10:10
ошибка
Читаю bat файлом:(пока log, потом изменю)

@ECHO OFF

plc_io /TCP10.0.6.10 /get File_Primer.log
IF %ERRORLEVEL%==200 ECHO неверный параметр
IF %ERRORLEVEL%==121 ECHO ошибки чтения
IF %ERRORLEVEL%==120 ECHO ошибка чтения
IF %ERRORLEVEL%==111 ECHO слишком длинное имя файла
IF %ERRORLEVEL%==110 ECHO не удалось открыть файл
IF %ERRORLEVEL%==100 ECHO не удалось соединиться с ПЛК
IF %ERRORLEVEL%==0 ECHO операция завершена успешно
pause

путь указываю:

VanoKing
09.08.2011, 10:14
при нормальном запуске из вин.окна выдает файл, а тут не хотит

SCADAMaster
09.08.2011, 10:28
приложите сюда bat файл и утилиту.

VanoKing
09.08.2011, 10:33
Вот выложил

Лицензия скада стоит на семерке, в ней не пробовал
а тренируюсь на демо версии скада на XP SP3
если это имеет значение)

BETEP
09.08.2011, 10:43
вот не помню точно, при запуске из винды батнику передаётся текущий путь, при запуске из другого приложения не всегда,
предположительно в батнике нужно задать полный путь для plc_io.

ну или убрать @ECHO OFF, что-бы видеть где файл споткнулся.

VanoKing
09.08.2011, 10:59
тогда выдает:


System.ComponentModel.Win32Exception: Системе не удается найти указанный путь
в System.Diagnostics.Process.StartWithCreateProcess( ProcessStartInfo startInfo)
в System.Diagnostics.Process.Start()
в System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
в InSAT.Library.ProcessHlp.StartProcessWithoutOutput (ProcessStartInfo startInfo, String& output, String& errors)

BETEP
09.08.2011, 11:05
Ну задайте путь куда файл писать, и заодно для plc_io

VanoKing
09.08.2011, 12:18
а куда пишет то, или как путь задать?
выход получил:
Принимаем File_Primer.log: ...ok
а куда получил не понял

а иногда в 50% случаях
Ошибка при приеме 'File_Primer.log': 100

Нашел куда пишет
C:\MasterSCADA Projects\Library\Мои объекты

BETEP
09.08.2011, 12:32
/FLDR«папка» - целевая папка на ПК.
Примечание. Необязательный параметр, если не указан, то
используется текущая папка, в которую установлена программа.

Вы ведь сами эту инструкцию к plc_io выложили

или как вариант в начале батника вставить команду Chdir (Cd) с указанием пути, описание команды в хелпе винды

SCADAMaster
09.08.2011, 13:13
а куда пишет то, или как путь задать?

Судя по описанию можно также задать и путь для файла, в который будет сохраняться.
Для более простого решения таких задач, мы добавим в ФБ "Запуск процесса" еще одну настройку - "Рабочий каталог".

BETEP
09.08.2011, 16:50
Для более простого решения таких задач, мы добавим в ФБ "Запуск процесса" еще одну настройку - "Рабочий каталог".

Тогда за компанию и всё остальное из ярлыка винды, в ярлыках можно и системные переменные указывать и ключи (параметры) запускаемой проги.
Может проще ярлык запустить?:)

SCADAMaster
09.08.2011, 17:44
Тогда за компанию и всё остальное из ярлыка винды, в ярлыках можно и системные переменные указывать и ключи (параметры) запускаемой проги.

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



Может проще ярлык запустить?:)
Ярлык не всегда подходит. Иногда требуется менять параметры запуска в режиме исполнения, например открывать на просмотр отчет, средствами скады.

BETEP
09.08.2011, 18:36
Вообще то я пошутил....

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

SCADAMaster
09.08.2011, 19:58
Запускать ярлыки из MasterSCADA тоже можно. В ФБ "Запуск процесса" нужно указать:
в поле "Имя команды" - cmd.exe
в поле "Строка аргумента" - /C полный путь к ярлыку например /C C:\1\отчет.lnk

VanoKing
10.08.2011, 15:16
получилось считать.
Записал в файл архив нескольких переменных одной строкой("дата,время,10010110"). В СКАДЕ открытый файл разносится максимум по 256 строкам. хочу каждую строку разобрать по переменным и внести в файловый архив.(каждая строка под разным временем опроса).

хотел разобрать строку в ФБ "ST" пишет не поддерживает вход типа string. Там жесткие ограничения?
Как записать в существующий файловый архив данные, которые не были в него записаны на период не работоспособности АРМ? пока выясняю, не получается

SCADAMaster
10.08.2011, 15:27
Может быть вам стоит рассмотреть режим работы по HDA?


хотел разобрать строку в ФБ "ST" пишет не поддерживает вход типа string.
Какая у вас версия? В ST у нас поддерживаются строки, если он исполняется в SCADA, при работе в контроллерах - нет.
Для разбора строки также есть специальный ФБ, на закладке "Вычисления" Палитры.
Можно также сделать при помощи модуля "Скрипт".

VanoKing
10.08.2011, 21:38
Может быть вам стоит рассмотреть режим работы по HDA?


Насколько я понял для этого нужен OPC HDA сервер. Располагаю только CodeSys OPC DA.

SCADAMaster
10.08.2011, 22:11
Используйте Lectus, где то сайте есть инструкция по настройке для работы с архивом.

VanoKing
11.08.2011, 07:41
Пробовал, ограниченную версию. Фин.средств уже не выделят, поэтому и изобретаю из того что есть.

SCADAMaster
11.08.2011, 08:38
Тогда нужно написать скрипт, который будет формировать архив на основе текстового файла. Пример похожего скрипта есть в примерах, в библиотеке

VanoKing
11.08.2011, 10:57
Скрипты можно только на Си шарп писать?
Его совсем не знаю,тяжеловат для меня. Вот Паскаль изучен).
А на ST чтот тоже не получается рис.прилагаю
версия SCADA: 3.3.3.34717 3.3.SP2(20002451_5106)_11_05_20_16_53

SCADAMaster
11.08.2011, 11:26
Вы в режим исполнения запускать пробовали? У нас такая программа работает корректно.
При помощи модуля ST сформировать архив не получится.

А сколько переменных вы планируете получать от ПЛК?

VanoKing
11.08.2011, 12:43
122 bool 1\0

в режиме отладки задавал вход константой
выход: Данные не обновлялись.
в режиме имитации на вход случ цифры идут
выход ничего

SCADAMaster
11.08.2011, 13:09
Вышлите на support(собака)insat.ru ваш проект с модулем ST, а также сообщите версию MasterSCADA (справка - о программе).

VanoKing
11.08.2011, 14:37
отправил письмо

VanoKing
08.09.2011, 07:07
В какой папке хранится файловый архив SCAD'Ы?

SCADAMaster
08.09.2011, 19:09
Файловый архив не хранится в одной папке. В каждой папке объекта, в котором есть архивируемые переменные, создается папка __Data в которой создаются текстовые файлы с данными. А в папку __Event пишется архив сообщений.