Здравствуйте.
Данный скрипт меняет видимость изображения в зависимости от того какое значение принимает переменная связанная с изображением. Кстати, его можно сократить так:
begin
if Sender is TM_Image then // проверяем, что Sender это изображение
with Sender as TM_Image do // приводим Sender к типу "TM_Image"
Visible := AsBool;
end.
Скрипты компилируются в программу при сохранении проекта и ни при каких обстоятельствах не могут начать работать по разному, независимо от того на какой версии скады они запущены, или на каком компьютере они запущены, ведь программа скомпилирована и не менялась. Поэтому причину нужно искать только в значениях переменных. Если при запуске на объекте вы видите что изображения скрылись, значит переменные с которыми они связаны приняли значение FALSE, в соответствии со скриптом. Либо второй вариант: в скриптах есть грубые ошибки, или ссылки друг на друга, или скрипты назначены не на события OnDataChange, а на OnDataChangeEx и так далее.
Если найти причину не получается, то вышлите нам проект на
support@simple-scada.com для проверки с указанием проблемных изображений. Мы укажем на ошибки в скриптах, если они есть.
и второй вопрос создавал новый проект , соответственно в офлайне , когда перенес на полную версию , сервер начал ругаться на половину переменных с OPC DA сервера, передобавил их уже на полной версии , и все ок , что за глюк не понял , все переменные вносились в проект , почти одновременно, но ответ на первый вопрос важнее , не охота плодить прямые скрипты
От переноса проекта на полную версию или Demo-Time ничего не меняется, эти версии не отличаются ничем, кроме ограничения по времени работы. Какие именно сообщения выдал сервер касаемо DA-переменных? Можем предположить что это были сообщения о том, что переменная в указанным адресом не существует на OPC-сервере. Если это так, значит на объекте куда Вы перенесли проект на OPC-сервере действительно нет переменных с теми адресами которые Вы указали при разработке проекта. А когда Вы их заново импортировали с OPC-сервера, то адреса считались с OPC-сервера и стали правильными, что логично. Опишем то же самое по шагам:
1. На одном компьютере мы разрабатываем проект. Устанавливаем скаду и OPC-сервер. Создаём на OPC-сервере группу "Group1" и в ней переменную "V1".
2. Импортируем переменную с OPC-сервера в скаду. Скада получит адрес переменной Group1.V1;
3. Запускаем проект и проверяем его в работе. Всё работает.
4. Переходим на другой компьютер. Устанавливаем скаду и OPC-сервер. Создаём на нём группу "Group2" и переменную "V1";
5. Проект мы сделали ранее, пробуем его запустить и получаем ошибку, ведь переменной с адресом Group1.V1 не существует. На новом ПК она имеет адрес Group2.V2;
Это то, что мы можем предположить из имеющейся информации, здесь приходится угадывать, так как мы не знаем какие именно сообщения об ошибках выдал сервер скады, по ним мы могли бы назвать точную причину. В целом, если на одном ПК всё работает, а на другом нет, значит причину нужно искать в разнице между этими ПК (как в примере выше с OPC-серверами), т.к. при переносе скады между ПК сама скада не меняется, как и её скрипты.