Форум ZETLAB

Архив обсуждений, технических вопросов и ответов по оборудованию, программному обеспечению и внедрению измерительных систем.

Страницы: 1
RSS
Проблемы с Программируемым компонентом
 
Добрый день. Пытаюсь реализовать наложение предыдущих графиков с помощь Программируемого компонента. Скрипт сохраняет 5 предыдущих измерений и должен выводить их на график. Однако, вместо всех сохраненных значений, на график выводятся одни и те же значения (последние) для всех графиков "#1", "#2", ..., т.е. имена и цвета графиков разные, а выводимые значение всех этих сохраненных графиков соответствует последнему выводимому массиву - скрипт отправляет данные, но все пять кривых на графике в итоге отображают данные последнего SendArray. Полагаю, что проблема именно в функции вывода массива из компонента, поэтому привожу часть скрипта, отвечающего за вывод ранее сохраненных значений и механизм PutValueToArray + SendArray в ZETVIEW не поддерживает заполнение и отправку нескольких разных массивов подряд в рамках одного вызова скрипта.
Изменено: Digger23 - 05.11.2026 12:44:50
 
Код
'***************************************************************
' ОТПРАВКА ВСЕХ СОХРАНЁННЫХ КРИВЫХ НА ГРАФИК
' Каждая кривая отправляется ровно своей длины (histLength)
'***************************************************************
Sub SendAllCurves()
    Dim p, c
    ' Curve_1
    If histCount > 1 And histLength(1) > 0 Then
        For p = 0 To histLength(1) - 1
            This.PutValueToArray histBuffer(1, p), p
        Next
        This.SendArray "#1", histLength(1)
    End If
    This.Sleep(200)
    ' Curve_2
    If histCount > 2 And histLength(2) > 0 Then
        For p = 0 To histLength(2) - 1
            This.PutValueToArray histBuffer(2, p), p
        Next
        This.SendArray "#2", histLength(2)
    End If
    This.Sleep(200)
    ' Curve_3
    If histCount > 3 And histLength(3) > 0 Then
        For p = 0 To histLength(3) - 1
            This.PutValueToArray histBuffer(3, p), p
        Next
        This.SendArray "#3", histLength(3)
    End If
    This.Sleep(200)
    ' Curve_4
    If histCount > 4 And histLength(4) > 0 Then
        For p = 0 To histLength(4) - 1
            This.PutValueToArray histBuffer(4, p), p
        Next
        This.SendArray "#4", histLength(4)
    End If
    This.Sleep(200)
    ' Curve_5
    If histCount > 5 And histLength(5) > 0 Then
        For p = 0 To histLength(5) - 1
            This.PutValueToArray histBuffer(5, p), p
        Next
        This.SendArray "#5", histLength(5)
    End If
    This.Sleep(200)
End Sub
Изменено: Digger23 - 05.11.2026 09:29:43
Страницы: 1
Читают тему