Только приступил к изучению masterSCADA, все видео обучающие просмотрел. У меня вопрос: можно ли из скады открыть текстовый файл и считать информацию для записи в БД? Каким элементом палитры пользоваться?
Вид для печати
Только приступил к изучению masterSCADA, все видео обучающие просмотрел. У меня вопрос: можно ли из скады открыть текстовый файл и считать информацию для записи в БД? Каким элементом палитры пользоваться?
В палитре ФБ есть ФБ "Сохранение в файле", который может как записывать так и считывать данные. Вы можете использовать только для чтения.
Формат файла - csv.
В этой статье описана работа с данным ФБ (страница 11)
http://www.masterscada.ru/services/s...asterSCADA.pdf
Можно также прочитать в справке.
Если данный ФБ, не подойдет вам то опишите задачу подробнее
С чтением с ПК разобрался, спасибо!
Хочу реализовать чтение записанных файлов в ПЛК программой от ОВЕНА plc_io.exe, потом считать скадой. В ПЛК уже есть файлы, записал в формате csv. Считываю из windows - нормально. А из Скады не получается.
Есть в палитре служебные-> "Запуск процесса", никак не могу запустить plc_io, у него путь должен быть особенный или нельзя так сделать???
Вы указываете к нему путь на закладке "настройка", а также задаете параметры запуска, используя строку аргументов.
Файл запускается с указанными вами параметрами, и выполняет нужные действия.
Вы можете написать bat файл который будет считывать файлы из контроллера при помощи данной утилиты, а из скады запускать уже его.
ошибка
Читаю 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
путь указываю:
при нормальном запуске из вин.окна выдает файл, а тут не хотит
приложите сюда bat файл и утилиту.
Вот выложил
Лицензия скада стоит на семерке, в ней не пробовал
а тренируюсь на демо версии скада на XP SP3
если это имеет значение)
вот не помню точно, при запуске из винды батнику передаётся текущий путь, при запуске из другого приложения не всегда,
предположительно в батнике нужно задать полный путь для plc_io.
ну или убрать @ECHO OFF, что-бы видеть где файл споткнулся.
тогда выдает:
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
а куда пишет то, или как путь задать?
выход получил:
Принимаем File_Primer.log: ...ok
а куда получил не понял
а иногда в 50% случаях
Ошибка при приеме 'File_Primer.log': 100
Нашел куда пишет
C:\MasterSCADA Projects\Library\Мои объекты
Вы ведь сами эту инструкцию к plc_io выложилиЦитата:
/FLDR«папка» - целевая папка на ПК.
Примечание. Необязательный параметр, если не указан, то
используется текущая папка, в которую установлена программа.
или как вариант в начале батника вставить команду Chdir (Cd) с указанием пути, описание команды в хелпе винды
Возможность запуска с параметрами есть и сейчас, причем параметры можно задавать в режиме исполнения.
Ярлык не всегда подходит. Иногда требуется менять параметры запуска в режиме исполнения, например открывать на просмотр отчет, средствами скады.
Вообще то я пошутил....
но у ярлыков очень неплохие возможности
вот парочка под XP
Запускать ярлыки из MasterSCADA тоже можно. В ФБ "Запуск процесса" нужно указать:
в поле "Имя команды" - cmd.exe
в поле "Строка аргумента" - /C полный путь к ярлыку например /C C:\1\отчет.lnk
получилось считать.
Записал в файл архив нескольких переменных одной строкой("дата,время,10010110"). В СКАДЕ открытый файл разносится максимум по 256 строкам. хочу каждую строку разобрать по переменным и внести в файловый архив.(каждая строка под разным временем опроса).
хотел разобрать строку в ФБ "ST" пишет не поддерживает вход типа string. Там жесткие ограничения?
Как записать в существующий файловый архив данные, которые не были в него записаны на период не работоспособности АРМ? пока выясняю, не получается
Может быть вам стоит рассмотреть режим работы по HDA?
Какая у вас версия? В ST у нас поддерживаются строки, если он исполняется в SCADA, при работе в контроллерах - нет.
Для разбора строки также есть специальный ФБ, на закладке "Вычисления" Палитры.
Можно также сделать при помощи модуля "Скрипт".
Используйте Lectus, где то сайте есть инструкция по настройке для работы с архивом.
Пробовал, ограниченную версию. Фин.средств уже не выделят, поэтому и изобретаю из того что есть.
Тогда нужно написать скрипт, который будет формировать архив на основе текстового файла. Пример похожего скрипта есть в примерах, в библиотеке
Скрипты можно только на Си шарп писать?
Его совсем не знаю,тяжеловат для меня. Вот Паскаль изучен).
А на ST чтот тоже не получается рис.прилагаю
версия SCADA: 3.3.3.34717 3.3.SP2(20002451_5106)_11_05_20_16_53
Вы в режим исполнения запускать пробовали? У нас такая программа работает корректно.
При помощи модуля ST сформировать архив не получится.
А сколько переменных вы планируете получать от ПЛК?
122 bool 1\0
в режиме отладки задавал вход константой
выход: Данные не обновлялись.
в режиме имитации на вход случ цифры идут
выход ничего
Вышлите на support(собака)insat.ru ваш проект с модулем ST, а также сообщите версию MasterSCADA (справка - о программе).
отправил письмо
В какой папке хранится файловый архив SCAD'Ы?
Файловый архив не хранится в одной папке. В каждой папке объекта, в котором есть архивируемые переменные, создается папка __Data в которой создаются текстовые файлы с данными. А в папку __Event пишется архив сообщений.