This is topic Глобальные переменные in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000756.html

Posted by alex_kh1 (Участник № / Member № 3981) on :
 
Здравствуйте, есть пара вопросов о дальнейших планах разработчиков

1. Планируется ли введение "Глобальных переменных" в общепринятом смысле этого понятия. Чтобы их можно было использовать из любой точки проекта? Непонятно почему это до сих пор не сделано, программирование превращается просто в муку.
2. В возможностях экранов увы нет даже простейших вычисляемых полей, т.е. если я вывожу 2 столбика и хочу отобразить в третьем их разницу, то нужно его рассчитать в программе и ввести через аргументы - это просто чудовищно. ))
3. Если у меня порядка 300-400 аргументов в экране, то я не могу вывести 20 текстовых полей, поскольку 20 стрингов уже сьедают всею память аргументов. Как разработчики в таком случае предлагают решать такие задачи? Неужели нужно передавать стринги целиком, уже 15 лет как минимум строки передаются с помощью указателей.
4. Крайне неудобно работать с линейными списками аргументов, просто напрашивается древовидная организация списков.
5. Программы фактически выступают в виде объектов, соответствующим реальным, очень нужен механизм обмена событиями между ними, механизм аналогичный давно уже существующему в обьектно-ориентированных языках. Кстати Мастер-скада якобы предлагает данную возможность.
6. Имитаторы реальных обьектов предполагают логику реальных объектов, ну кому нужны эти генераторы, нужна возможность своей программой на ST или FBD имитировать поведение обьекта и подменить им источник. Только вот почему-то написать не проблема, а подменить источник уже невозможно.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
По 6-му пункту - рекомендую Вам заглянуть сюда: www.tracemode6.ru
Возможно, что это именно то, что Вы ищите... [Пдмигивание / Wink]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Такой переменной (скорее даже структурой) является канал.

2. Экран - это не таблица Excel. Вместить все возможности в графическую форму невозможно.

3. Используйте перепривязку или механизм "Запись длинных строк в канал CALL"

4-5. Мы не можем сделать абсолютно удобную для всех систему.

6. Отвяжите источник и привяжите к входу канала программу.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
1. Канал к сожалению нужно обьявлять в списке аргументов и привязывать в каждой программе и экране, что влечет за собой многократное увеличение количества аргументов и привязок, соответственно и трудоемкость программирования и вероятность ошибок.
Именно поэтому и хочется иметь глобальные переменные в общепринятом смысле.
Я правильно понял что в планах разработки данного пункта не предвидится?

2. Наверняка не настолько сложно сделать вычисляемые поля, что бы стоило просто игнорировать данную потребность. Наоброт вычисляемые поля уменьшили бы число аргументов экрана, количество внешних привязок аргументов и в конечном счете потребление вычислительных ресурсов.

3. А каким образом это поможет если 20 строковых аргументов экрана сьедят все пространство переменных, куда девать остальные 400 числовых?

4-5. Думаю это абсолютно всем было бы удобно, не только мне. И повысило бы конкурентоспособность вашей скады.

6. Уже обсуждалось, это не годится поскольку желательна именно замена источника, одной птичкой "изменение глубины привязки". Если уменя под сотню источников, мне все их перепривязвать, при каждой отладке, а работать то когда )).
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Да, такое не планируется.

2. И это пока не планируется.

3. В том то и дело, что у Вас будет только 1 аргумент привязанный к аппаратному значению.

6. Мы подумаем над этим предложением.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
По планам разработки понятно.

По 3 пункту так и не понял сути предложения.

"Запись длинных строк в канал CALL"-вроде бы не помогает поскольку в таблице все равно нужны те же 20 переменных типа стринг.

А перепривязка настолько слабо освещена в документации, что я не понимаю как в данном случае она может помочь.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Для какой цели Вам нужны 20 произвольных (!!!) строк в таблице одновременно?
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
Нужно выводить таблицу рецепта, с названиями компонетов которые берутся из базы. 20 это далеко не предел в случае линий хим. или например кондитерской промышленности .

В конкретном моем случае не 20 а 12, но суть то от этого не меняется.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В БД все строковые переменные обычно имеют индексы, и вся работа идет с индексами, а не со строками.

Некое подобие этого можно организовать и в Trace Mode. Таблица ведь у Вас не динамическая и количество полей заранее известно.

Других способов на данный момент нет, и в ближайшее время не предвидится.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
Увы, содержимое рецептов в базу вносит технолог. И соответственно количество возможных рецептов и компонентов практически не ограничено.
Так что очень печально, что нет такой элементарной возможности. Элементарной потому что работа со строками по указателю наверняка могла бы быть реализована за минимальный срок.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
А с чего Вы решили, что на экране можно расположить не более 20 стринговых переменных. Практика показывает, что и 70 не проблема.
 
Posted by Romсheg (Участник № / Member № 3792) on :
 
2alex_kh1: Постучите мне в ICQ: 206646106
У меня есть подходящее решение Вашей задачи под ТМ6 с рецептами.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
А с чего Вы решили, что на экране можно расположить не более 20 стринговых переменных. Практика показывает, что и 70 не проблема.

Размер стринга 256 байт, т.е. 20 стрингов-5 килобайт, а память переменных экрана 3.5-4 килобайта. И тому подтверждением был ответ на форуме, о возможном количестве строковых аргументов экрана.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Дайте, пожалуйста, ссылку, где Вы это прочитали.
--------------------------------------------

Это ограничение относится к программам и прописано в справке.
Для экранов такого ограничения нет.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
Действительно, в той ветке речь шла о программах.
Если я правильно пересчитал ограничение экрана 24 Кб?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
не совсем, строковые переменные в экран передаются только в виде адреса, и поэтому они считаются для экрана, как 4 байта.

Ограничение 6000 аргументов.
 
Posted by alex_kh1 (Участник № / Member № 3981) on :
 
Спасибо, на добром слове.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2