Помощь в написании скрипта
Здравствуйте. нужен пример скрипта на паскале, скрипт по таймеру
1. читаем физ канал,
2. проверяем соответствие значения уставке, допустим он должен быть больше определенного значения 30
3. если значение меньше уставки, пишем в вирт канал флаг для контроля допустим 1, причем флаг не должен записаться в течении 5 циклов таймера скрипта, т.е. если течении 5 циклов опроса значение не соответствует уставке и на 6 цикл не сооответствует то должен писаться флаг, если в любом цикле норма, счетчик опроса в 0 и снова
может быть не буду понят но прошу помощи
1. читаем физ канал,
2. проверяем соответствие значения уставке, допустим он должен быть больше определенного значения 30
3. если значение меньше уставки, пишем в вирт канал флаг для контроля допустим 1, причем флаг не должен записаться в течении 5 циклов таймера скрипта, т.е. если течении 5 циклов опроса значение не соответствует уставке и на 6 цикл не сооответствует то должен писаться флаг, если в любом цикле норма, счетчик опроса в 0 и снова
может быть не буду понят но прошу помощи
0,639835481213199
0,639835481213199
0,639835481213199
0,639835481213199
0,771158362428347
0,771158362428347
0,771158362428347
0,771158362428347
0,771158362428347
0,771158362428347
ок. Тогда для полноты картины надо было с реальными именами, а так получается что написано с ошибкой. Хорошо, тогда в силе первый вопрос, почему не объединить в одном скрипте расчет и запись, не факт что расчет будет готов, к моменту когда второй скрипт вычитывает значения результата, каналы между собой не синхронизированы.
В начале какой строки? Которую будите передавать в канал или записывать в файл?
12:00:11 chanel1 0,639835481213199 chanel2 0,698354812131993
пример: str := TimeToStr(now) + ' chanel1 ' + FloatToStr(0.639835481213199);
ChannelName := 'Имя канала';
SaveToTxtFile('Имя файла',Channel_Name);
в файл выводится индекс канала, а не текстовое содержимое переменной Channel_Name.
Так и должно быть?
Я немного не понял Вашего вопроса.
из справки:
Function SaveToTxtFile (АFileName: string; Str: string): Boolean
Записывает строковое значение Str в текстовый файл AFileName. Возвращает true, если запись успешна, и false, если произошла ошибка записи. Запись происходит последовательно, строчка за строчкой.
Пример вызова:
SaveToTxtFile("c:\receipt.txt", "123,33,44,555");
Var
cTime: TDateTime;
TinValue: Variant;
tStr: string;
Const
logFileName = 'c:\simplog.txt';
TinChName = 'Уровень мерник поз. 1';
Begin
cTime := Now;
tStr := FormatDateTime('yyyy-mm-dd hh:nn:ss',cTime) + '; ';
TinValue := ReadValue(TinChName);
tStr := tStr + 'Канал ' + TinChName + ' = ' + VarToStr(TinValue) + ';';
SaveToTxtFile(logFileName, tStr);
end.
В файле, вместо ожидаемого: "Канал Уровень мерник поз. 1 = 85",
видим: "Канал 3 = 85".
При этом ShowMessage(tStr) показывает то, что нужно.