Просмотр полной версии : Чтение файлов в 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
если это имеет значение)
вот не помню точно, при запуске из винды батнику передаётся текущий путь, при запуске из другого приложения не всегда,
предположительно в батнике нужно задать полный путь для 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)
Ну задайте путь куда файл писать, и заодно для plc_io
VanoKing
09.08.2011, 12:18
а куда пишет то, или как путь задать?
выход получил:
Принимаем File_Primer.log: ...ok
а куда получил не понял
а иногда в 50% случаях
Ошибка при приеме 'File_Primer.log': 100
Нашел куда пишет
C:\MasterSCADA Projects\Library\Мои объекты
/FLDR«папка» - целевая папка на ПК.
Примечание. Необязательный параметр, если не указан, то
используется текущая папка, в которую установлена программа.
Вы ведь сами эту инструкцию к plc_io выложили
или как вариант в начале батника вставить команду Chdir (Cd) с указанием пути, описание команды в хелпе винды
SCADAMaster
09.08.2011, 13:13
а куда пишет то, или как путь задать?
Судя по описанию можно также задать и путь для файла, в который будет сохраняться.
Для более простого решения таких задач, мы добавим в ФБ "Запуск процесса" еще одну настройку - "Рабочий каталог".
Для более простого решения таких задач, мы добавим в ФБ "Запуск процесса" еще одну настройку - "Рабочий каталог".
Тогда за компанию и всё остальное из ярлыка винды, в ярлыках можно и системные переменные указывать и ключи (параметры) запускаемой проги.
Может проще ярлык запустить?:)
SCADAMaster
09.08.2011, 17:44
Тогда за компанию и всё остальное из ярлыка винды, в ярлыках можно и системные переменные указывать и ключи (параметры) запускаемой проги.
Возможность запуска с параметрами есть и сейчас, причем параметры можно задавать в режиме исполнения.
Может проще ярлык запустить?:)
Ярлык не всегда подходит. Иногда требуется менять параметры запуска в режиме исполнения, например открывать на просмотр отчет, средствами скады.
Вообще то я пошутил....
но у ярлыков очень неплохие возможности
вот парочка под 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 пишется архив сообщений.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot