Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Редактор проекта TRACE MODE 6 / » Запись данных в файл

   
Автор / Author Тема / Topic: Запись данных в файл
Gennady
Junior Member / Новичок
Участник № / Member № 6305


Icon 5 отправлено / posted      Профиль для / Profile for Gennady           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Уважаемая техподдержка, при реализации проекта столкнулся с некоторыми трудностями.
1) На экране имеется кнопка при нажатии на которую производится запись аргументов в файл .dat .
С экраном работает нормально, но мне нужно команду на запись реализовать из программы. При попытке реализовать это я столкнулся со странной проблемой.
Даже если программа не шлет в аргумент единицу все равно при наличии привязки программы и канала с типом вызова ChGroupReq происходит запись значений аргументов в файл (т.е. в файл записывается все время) почему так происходит?
Более того создаются два файла! - один пишется все время с циклом CALL, а другой только при подаче единицы в атрибут 129 (разница в названии прочерк с единицей Имя_канала_1 ) .
Как избавится от лишнего файла (который пишется с периодом CALL)?
2) Какое максимальное количество аргументов может иметь канал с типом вызова ChGroupReq?
3) У меня сейчас у канала для записи в файл (ChGroupReq) 165 аргументов и привязок, все работает без ошибок, но мне надо их более 1000. При попытке реализовать это начинаются странные путаницы в привязках, когда открываешь полученный файл правильные значения записаны только в начале файла, а дальше начинаются повторения и пропуски. Как можно это исправить?

Сообщения / Posts 26 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Программа всегда посылает в аргумент OUT какое-то значение, даже если это значение программа не изменяет.
В Вашем случае постоянно пишется файл по подаче "0".
Необходимо либо эту программу запускать по событию, либо передавать сигнал на запись/считывание с помощью каналов (типа OUT) CALL.MOVE или CALL.SET с одновременным управлением их атрибутом 39 (EXEC).

Количество аргументов у канала ChGroupReq может быть существенно больше 1000.
Надо учитывать, что если Вы удаляли аргументы из середины массива аргументов, то общее количество аргументов у канала в реальном времени будет больше - будет определяться старшим IDE оставшихся аргументов.
Операции записи/чтения осуществляются в основном потоке обработки каналов в синхронном режиме. Чрезмерное увлечение такими операциями может привести к увеличению цикла обработки базы каналов и увеличении потребляемых ресурсов.

При корректной реализации записи нарушений в файле быть не должно.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Gennady
Junior Member / Новичок
Участник № / Member № 6305


Icon 1 отправлено / posted      Профиль для / Profile for Gennady           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Чтобы не создавать новую тему спрошу здесь.

Как сделать так что бы используя механизм записи/чтения аргументов канала CALL в текстовый файл через атрибут 128,129, записывать и читать более одного файла?

У меня читает и пишет только один файл. Мне надо больше

Сообщения / Posts 26 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В актуальном релизе 6.10.2 данный механизм работает с более чем одним файлом.

Из Справочной Системы "Каналы и Системные переменные - Канал класса CALL - Атрибуты канала класса CALL":
quote:
Запись в файл (129, WFile) – при посылке в этот атрибут неотрицательного значения V текущие значения аргументов канала записываются в текстовый файл <имя канала>_<N>.dat (N – целая часть V; если N=0, файл имеет имя <имя канала>.dat), каждая строка которого содержит обозначение аргумента и его значение.
К примеру, есть канал Call.CGR с именем Call.
Если в 129 атрибут ввести число 1, то будет создан в папке проекта файл CALL_1.dat.
Если 2, то CALL_2.dat и т.д.
Если 0.2, то CALL.dat

Аналогично с чтением.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2