Форум 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 / Algorithm Programming Languages » Количество аргументов программы

   
Автор / Author Тема / Topic: Количество аргументов программы
Paulo
Junior Member / Новичок
Участник № / Member № 3020


Icon 9 отправлено / posted      Профиль для / Profile for Paulo           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте!
У меня такая проблема. Сделал программу с 515 аргументами, всё работает. Понадобилось расширить программу добавил аргументов до 955 - программа перестала работать, точнее в отладчике она запускается, всё хорошо, а в профайлере каналу, вызывающему её выставляется недостоверность и он отключается [Неодобрение / Frown] Опытным путём выяснил, что всё работает при 895 аргументах, а при 896 уже не работает.
Все аргументы имеют тип данных Real. В хелпе заявлено, что «Количество аргументов канала вызова программы ограничено; в случае 4-байтовых аргументов: в Windows – 1024». Но у меня не работает уже при 896.
При 895 аргументах изменил тип данных одного из аргументов с Real (4 байта) на Lreall (8 байт) опять перестало работать — отсюда сделал вывод, что скорей всего не хватает памяти канала, выделяемой под аргументы (извините, если не правильно выражаюсь). При этом в атрибут I2 (92) пишется 0 — а кода ошибки нет.
Пробовал даже увеличить время цикла, но не помогло (до 10 секунд увеличевал)
Что мне делать? В хелпе написано одно, а на деле оказывается другое ((((( Как узнать сколько реально выделено памяти под аргументы и сколько уже занято?

Сообщения / Posts 9 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Karpelyanskiy S.V.
Forum Member / Участник форума
Участник № / Member № 2191


Icon 1 отправлено / posted      Профиль для / Profile for Karpelyanskiy S.V.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Простите пожалуйста за любопытство. Но можно поинтересоваться ради профессионального, так сказать, интереса а какие задачи выполняет Ваша программа с таким количеством аргументов?
Сообщения / Posts 56 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Paulo
Junior Member / Новичок
Участник № / Member № 3020


Icon 1 отправлено / posted      Профиль для / Profile for Paulo           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by Karpelyanskiy S.V.:
Простите пожалуйста за любопытство. Но можно поинтересоваться ради профессионального, так сказать, интереса а какие задачи выполняет Ваша программа с таким количеством аргументов?

Задача такая. Есть 56 каналов Float, для каждого из которого нужно задавать по 8 атрибутов (6 границ, множитель, смещение+ читается значение контрольной суммы по каждому каналу (КС)). Значения атрибутов читаются из файла . Т. е. уже нужно 504 аргумента (чтобы в программу передать значения, прочитанные из файла). После сравнения прочитанных КС с рассчитанными КС делается вывод о том, был ли поврежден файл или нет. Если файл не был поврежден, то все атрибуты записываются в каналы + еще 448 атрибутов (в итоге уже 952 атрибутов)+ еще аргументы управления программой 3 шт. [Улыбка / Smile] Вот и получается 955 атрибутов.
Сообщения / Posts 9 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Доброе время суток Господа!

А может легче сделать шаблон программы с восьмью аргументами и вызывать его каждым из 56-ти каналом. Конечно при условии того что обращение к файлу не ведется слишком интенсивно. И раскидать пересчёт этих каналов по 4-м фазам общего цикла монитора, т.е. по 14 каналов в каждой фазе, чтоб разом не кидались читать данные из файла.

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


Icon 1 отправлено / posted      Профиль для / Profile for Paulo           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
quote:
Отправитель / Originally posted by Grigorovskih:
Доброе время суток Господа!

А может легче сделать шаблон программы с восьмью аргументами и вызывать его каждым из 56-ти каналом. Конечно при условии того что обращение к файлу не ведется слишком интенсивно. И раскидать пересчёт этих каналов по 4-м фазам общего цикла монитора, т.е. по 14 каналов в каждой фазе, чтоб разом не кидались читать данные из файла.

Спасибо. Но к сожалению такой вариант мало пригоден в моем случае т.к. интенсивность обращения к файлу не может превышать 1файл в секунду (об этом можно прочитать здесь http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/32/t/000214.html) Получается, что нужно делать 56 обращений, т.е в лучшем случае, если все сразу прочитается правильно, на чтение (и на запись, к стати говоря, тоже) уйдет около минуты. Даже сгруппировав файлы время на чтение и запись увеличивается в разы.
Да и вопрос, по сути, состоит в том — сколько выделяется памяти под аргументы, как узнать сколько еще её осталось, ну или хотя бы как узнать, что она уже закончилась (я об этом узнал экспериментальным путем, да и то не факт, что сделал правильный вывод)?

Сообщения / Posts 9 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Grigorovskih
Forum Professor / Завсегдатай форума
Участник № / Member № 1915


Icon 1 отправлено / posted      Профиль для / Profile for Grigorovskih           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Тогда необходимо наверное воспользоваться для целей конфигурирования БД, и через ODBC тянуть эти данные.
Правда если Адастра устранит недочёты по этой теме в релизе 6.06! Хотя, если эта база будет локальная (ну к примеру Access можно использовать) то нормально можно работать.

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


Icon 1 отправлено / posted      Профиль для / Profile for Paulo           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ждать пока будут устранены недочеты - увы это неопределённый срок, а проблему надо решать. Сейчас, как оказалось, если разбивать каналы на группы, то не только время увеличится, но еще придется переделывать графику (((((
А еще был такой глюк - программа не компелируется и не выдаётся никакой ошибки, т.е. нажал кнопку скомпилировать и ничего не произошло. Перезагрузка ТМ ничего не дала. Но тут выход нашёл [clever / умный] Сохранил прогу в библиотеку, удали старую прогу, перезагрузил ТМ, и вставил её из библиотке - заработала [beer / пиво]
Нужно тоже самое попробовать с той программой, где много аргументов [Улыбка / Smile]

Сообщения / Posts 9 | Из / 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 
Под аргументы программы выделяется 4 КБ памяти. Почему у Вас выделяется, только 3.5 сложно. У Вас все аргументы REAL? Пришлите Ваш проект на адрес hotline3@adastra.ru
Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Paulo
Junior Member / Новичок
Участник № / Member № 3020


Icon 1 отправлено / posted      Профиль для / Profile for Paulo           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да, все аргументы REAL. Проект только что отправил. Надеюсь получится разобраться [Пдмигивание / Wink]
Сообщения / Posts 9 | Из / 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 
К сожалению, действительно сейчас под аргументы программы выделяется 3.5 КБ памяти. Это будет исправлено.

В Вашем случае можно порекомендовать использование функций getAttribute и setAttribute. Это олжно уменьшить кол-во аргументов программы почти в два раза.

Сообщения / Posts 17106 | Из / 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