06-27-2007 03:28 PM
06-28-2007 03:48 AM
Hallo alghouz,
ein Ansatz wäre sich einen Steuerkanal zu generieren in Abhängigkeit des Textkanals, d. h. für jeden verschieden Text eine Zahl zuzuweisen, z. B. ja = 1, nein = -1, vielleicht = 0. Diesen Steuerkanal kann man dann mitteln (und runden) und dem Ergebnis wieder den Text zu weisen.
Bei mehr als drei Text-Zuständen macht es vielleicht Sinn eine Matrix (über ein Array oder über Kanalbezug) für die versch. Zustände zu erstellen.
Oder wolltest Du ein fertiges Script?
06-28-2007 09:17 AM
06-28-2007 09:51 AM
Hallo
Du kannst mit CHT auf einen Textkanal zugreifen. Folgendes Script löst deine Aufgabe (vorrausgesetzt, die Anzahl der Werte im Kanal ist durch 3 teilbar)
dim iChnLenght,iChannelNo1,iChannelNo2,iChannelNo3,iChannelNo4, iLoop
iChnLenght = ChnPropGet("Channel1", "length") ' in older versions use ChnLength
Call ChnAlloc("Channel3", int(iChnLenght/3), 1, DataTypeFloat64) 'Allocate channel Channel3
Call ChnAlloc("Channel4", int(iChnLenght/3), 1, DataTypeString) 'Allocate channel Channel4
iChannelNo1 = CNo ("/Channel1") 'Calculate channel number input
iChannelNo2 = CNo ("/Channel2") 'Calculate channel number input (text)
iChannelNo3 = CNo ("/Channel3") 'Calculate channel number
iChannelNo4 = CNo ("/Channel4") 'Calculate channel number
For iLoop = 1 to iChnLenght Step 3 ' in old version use ChnLength
chd((iLoop+2)/3,iChannelNo3)=(CHDX(iLoop,iChannelNo1)+CHDX(iLoop+1,iChannelNo1)+CHDX(iLoop+2,iChannelNo1))/3
chT((iLoop+2)/3,iChannelNo4)=CHT(iLoop,iChannelNo2)
Next
Ich hoffe das hilft
Winfried
06-29-2007 08:00 AM