Эта справка описывает ДЕМО конфигурацию DEMO_PAINT, служащую иллюстрацией "умных сенсоров", отображение которых осуществляется с использованием пользовательского сценария Painter(v) на языке DaqScript. В данном случае наибольший интерес представляет мнемосхема, содержащая "умные сенсоры". Эта мнемосхема активно использует такие возможности сенсоров, как:
[Circuit]
Name = DemoPaint ; Set window name
GeneralMap = .\DemoPaint.bmp ; Set background picture
StartupScript = [Circuit.StartupScript] ; Set startup script section
[]
[ConfigFileList] ; Include standard definitions
ConfigFile = ~~\Resource\DaqSite\Default\Painter.crc
[]
[Circuit.StartupScript] ; Run on startup
alarm1=30 ; Set alarm1 level
alarm2=60 ; Set alarm2 level
[]
[SensorList]
Sensor = Led1
[Led1] ; Display with variable background
Pos = 10, 10 ; Set sensor position
LED = 7, 0, 3, %7.3f, [LedFont] ; Set display format
TagEval(v) = gt(v,alarm1)+gt(v,alarm2) ; Background depends on v
Tag#1 = 0, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07C.BMP ; Background if v <= alarm1
Tag#2 = 1, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07Y.BMP ; Background if alarm1 < v <= alarm2
Tag#3 = 2, ~~\Resource\DaqSite\StdLib\Bitmaps\_LED07R.BMP ; Background if v > alarm2
[]
[SensorList]
Sensor = Bar1
[Bar1] ; Sensor with script painting
Pos = 10 40 ; Set sensor position
Tag#1 = 0, BAR.BMP ; Set background picture
Painter(v) = [Bar1.Painter(v)] ; Set script to paint sensor
[]
[Bar1.Painter(v)] ; Draw a line script
sw=sensorWidth() ; Get sensor width
sh=sensorHeight() ; Get sensor height
x1=2 ; Calculate coordinates of line
y1=sh-2-v*(sh-4)/100 ;
x2=sw-2 ;
y2=y1 ;
color=clAqua*le(v,alarm1)+clYellow*gt(v,alarm1)*le(v,alarm2)+clRed*gt(v,alarm2) ; Calculate color to draw
setPen(color,psSolid,pmCopy,4)+drawLine(x1,y1,x2,y2) ; Set pen style and draw a line
setBrush(clWhite,bsClear) ; Set brush style for text
fh=-round(1.33*16) ; Find height of font 16 pt
@font charset 204 ; Set font Charset Russian
@font style 1 ; Set font Style Bold
@font color %clBlue ; Set font Color
@font height %fh ; Set font Height
@font name Courier New ; Set font Name
tw=@textwidth %7.3f%v ; Get text width
th=@textheight %7.3f%v ; Get text height
setCursor(sw/2-tw/2,max(5,min(y2+2-(th+4)*gt(y2,sh/2),sh-th-5))) ; Set text cursor
@print %7.3f%v ; Print v value with format %7.3f
[]
Имеется памятка для использования функций Painter(v):
Успешного использования Painter(v)!