1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Вопрос по VBS Tia Portal 15.1

Модератор: Глоб.модераторы

Ответить

Автор темы
Vindigoneeee
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 14 июл 2023, 11:38
Имя: Владимир

Вопрос по VBS Tia Portal 15.1

Сообщение Vindigoneeee »

Коллеги, доброго дня, недавно начал изучать VBS, тк на работе на не написана скада, и вот при выполнении работ по корректировки визуализации, нужно было сделать так, что бы в i/o филде вместо 3х значного числа, могли вводить 4х значное, вроде нашел скрипт где это прописывалось, поменял там ограничения, потом в переменных поменял диапазон ограничений, но теперь в окне при вводе значения надо два раза нажимать Enter тк получается вот такая штука. Мб кто-то подскажет, что я не так сделал?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Dmitriy1983
здесь недавно
здесь недавно
Сообщения: 94
Зарегистрирован: 29 окт 2017, 19:52
Имя: Дмитрий
Благодарил (а): 5 раз
Поблагодарили: 18 раз

Вопрос по VBS Tia Portal 15.1

Сообщение Dmitriy1983 »

А зачем это вообще делать через скрипт?

Автор темы
Vindigoneeee
здесь недавно
здесь недавно
Сообщения: 8
Зарегистрирован: 14 июл 2023, 11:38
Имя: Владимир

Вопрос по VBS Tia Portal 15.1

Сообщение Vindigoneeee »

Потому что скада полностью написана на VB) с этим вопросом вроде разобрался сам. Но появились другие. Сделал 4 I/O филда и хотел цвет менять в зависимости от условий, но при запуске скады пишет ошибку.

Код: Выделить всё

Sub Cut_CalcDistance_()
'Данный скрипт вызывается каждый раз при изменении текущей длины панели Plc\PCrd\Misc\ActPnLen и подсчитывает дистанцию до стыка.

SmartTags("USJ_mm_to_ch_coil") = ( SmartTags("Plc\PCwr\cList\cDist\Up_mm2ChCoil") - SmartTags("Plc\PCrd\Misc\ActPnLen") - SmartTags("Plc\Par\Gen\misc\USJ_Saw_Dist") ) / 1000  'Дистанция до верхней сшивки
SmartTags("LSJ_mm_to_ch_coil") = ( SmartTags("Plc\PCwr\cList\cDist\Lw_mm2ChCoil") - SmartTags("Plc\PCrd\Misc\ActPnLen") - SmartTags("Plc\Par\Gen\misc\LSJ_Saw_Dist") ) / 1000  'Дистанция до нижней сшивки

Dim a, b, c, d, e, f, ObjScreen, Obj1, Obj2, Obj3, Obj4 

'Set ObjScreen = HmiRuntime.Screens("N01-CutList") 'Открытие экрана резов
Set Obj1 = HmiRuntime.Screens("N01-CutList").ScreenItems("I/O field_73") 'Открытие на редактирование элемента экрана резов в котором отображается значение дистанции до ближ возм сшивки по верху
Set Obj2 = HmiRuntime.Screens("N01-CutList").ScreenItems("I/O field_74") 'Открытие на редактирование элемента экрана резов в котором отображается значение дистанции до ближ возм сшивки по низу
Set Obj3 = HmiRuntime.Screens("N01-CutList").ScreenItems("I/O field_87") 'Открытие на редактирование элемента экрана резов в котором отображается значение дистанции до стоп заливки по вате
Set Obj4 = HmiRuntime.Screens("N01-CutList").ScreenItems("I/O field_88") 'Открытие на редактирование элемента экрана резов в котором отображается значение дистанции до стоп заливки по пене
	
a = (SmartTags("L2_CUTLIST_R_PnLen")(1) - SmartTags("Plc\PCrd\Misc\ActPnLen")) / 1000 'Подсчет имитационной панели

b =  SmartTags("Display\Saw\CutL\mToEnd")*1000 ' Перевод в мм из м дистанции до конца заказа по ордернейму

c =  b - SmartTags("Plc\PCrd\Misc\ActPnLen") - SmartTags("Plc\Par\Gen\misc\USJ_Saw_Dist")  'Подсчет длинны до сшивки по верху для имитации работы ближ верхней сшивки в мм
c = c

d =  b - SmartTags("Plc\PCrd\Misc\ActPnLen") - SmartTags("Plc\Par\Gen\misc\LSJ_Saw_Dist")   'Подсчет длинны до сшивки по низу для имитации работы ближ нижней сшивки в мм
d = d 

'Расчет до возможности ближайшей сшивки по верху


If (c > SmartTags("Plc\Par\Gen\misc\USJ_Saw_Dist")) And SmartTags("Plc\PCrd\Misc\CycleON") Then	
	If  c < (SmartTags("Plc\PCrd\Misc\ActPnLen") *2) Then 
	Obj1.BackColor = RGB(255,0,0)
    End If	
	SmartTags("Display\NearUCut") = Round(a,2)
	
Else
	Obj1.BackColor = RGB(182,182,182)
	SmartTags("Display\NearUCut") = 0
	
End If

'Расчет до возможности ближайшей сшивки по низу

If (d > SmartTags("Plc\Par\Gen\misc\LSJ_Saw_Dist")) And SmartTags("Plc\PCrd\Misc\CycleON") Then
	 If  d < (SmartTags("Plc\PCrd\Misc\ActPnLen") *2) Then 
	 Obj2.BackColor = RGB(255,0,0)
     End If	
	SmartTags("Display\NearLCut") = Round(a,2)
	
Else
	Obj2.BackColor = RGB(182,182,182)
	SmartTags("Display\NearLCut") = 0
	
End If

'Расчет длинны панели до заливки при производстве на вате

e = (b - SmartTags("Plc\PCrd\Misc\ActPnLen") - 42000) / 1000

e = e

If ( e > 42.0 ) And SmartTags("Plc\PCrd\Misc\CycleON") Then
	If  e < ((SmartTags("Plc\PCrd\Misc\ActPnLen") *2)/1000) Then 
	Obj3.BackColor = RGB(255,0,0)
    End If
	SmartTags("Display\MWDist") = Round(a,2) 
	
Else
	Obj3.BackColor = RGB(182,182,182)
	SmartTags("Display\MWDist") = 0
	
End If

'Расчет длинны панели до заливки при производстве на ПИРЕ/ПУРЕ

f = (b - SmartTags("Plc\PCrd\Misc\ActPnLen") - 36000) / 1000

f = f

If ( f > 36.0 ) And SmartTags("Plc\PCrd\Misc\CycleON") Then
	If  f < ((SmartTags("Plc\PCrd\Misc\ActPnLen") *2)/1000) Then 
	Obj4.BackColor = RGB(255,0,0)
    End If
	SmartTags("Display\PIRDist") =  Round(a,2)
	
Else
	Obj4.BackColor = RGB(182,182,182)
	SmartTags("Display\PIRDist") = 0
	
End If


End Sub
Не могу понять что не так с объявлением работы с объектами на экране
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «WinCC»