|
Сценарии использования
Основным режимом работы блока питания является программно-управляемая
развертка тока магнита (в большинстве случаев линейная с постоянной скоростью). Такой
режим используется при измерениях сигналов ЭПР, коэффициента Холла или
магнетосопротивления. Пользователю обычно требуется запускать и останавливать
развертку тока, изменять скорость развертки и контролировать текущее значение
тока и/или магнитного поля. Ниже приведен текст простого сценария для
Data Master 2003, реализующий указанные функции.
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="MSThemeCompatible" content="Yes">
<meta name="GENERATOR" content="DM Script Editor">
<meta name="Author" content="RRR">
<meta name="vs_targetSchema" content="HTML 4.0">
<title>PU Control v1.3</title>
<link rel="stylesheet" href="applets.css" type="text/css">
<script src="cookies.vbs" language="VBScript"></script>
</head>
<body topmargin="0" leftmargin="10" scroll="no">
<script id="clientEventHandlersVBS" language="VBScript">
Option Explicit
private FScanU, FScanD, pubuf, PUDelay, PUStep, PUPortNumber, Field, QHCoef
FScanU=false FScanD=false
pubuf=""
PUPortNumber="1"
PUStep="0A" PUDelay=100 Field=0.0
QHCoef=0.001085 Sub window_onload
dim Tmp
Tmp=ReadCookie("PUPortNumber")
if Tmp<>"" then PUPortNumber=Tmp
PUComPort.value=PUPortNumber
Tmp=ReadCookie("PUStep")
if Tmp<>"" then PUStep=Tmp
PUStepSelect.value=PUStep
Tmp=ReadCookie("PUDelay")
if Tmp<>"" then PUDelay=Tmp
PUDelaySelect.value=PUDelay
Tmp=ReadCookie("QHCoef")
if Tmp<>"" then QHCoef=Tmp
QHCoefEdit.value=QHCoef
PUPort.Open(PUPortNumber & ",9600,3,8,0")
call PUPort.Write("S" & PUStep & vbCr) End Sub
Sub window_onunload
WriteCookie "PUPortNumber", PUPortNumber, false
WriteCookie "PUStep", PUStep, false
WriteCookie "PUDelay", PUDelay, false
WriteCookie "QHCoef", QHCoef, false
PUPort.Close
End Sub
sub HDownBtn_onclick
FScanD=true
FScanU=false
public_DTrigger
end sub
sub HUpBtn_onclick
FScanU=true
FScanD=false
public_UTrigger
end sub
sub HStopBtn_onclick
FScanU=false
FScanD=false
end sub
sub PUComPort_onchange
PUPortNumber=PUComPort.value
PUPort.Close
PUPort.Open(PUPortNumber & ",9600,3,8,0")
end sub
sub PUStepSelect_onchange
PUStep=PUStepSelect.value
call PUPort.Write("S" & PUStep & vbCr) end sub
sub PUDelaySelect_onchange
PUDelay=PUDelaySelect.value
end sub
sub QHCoefEdit_onchange
QHCoef=QHCoefEdit.value
end sub
sub PUPort_OnRead(Str)
dim temp
pubuf=pubuf+Str
if InStr(pubuf, "!")>0 then
PUPort.Write("L" & vbCr)
pubuf=""
exit sub
end if
temp="&H" & Mid(pubuf,1,4)
if (InStr(pubuf, vbCr)>0) and IsNumeric(temp) then
QHDisplay.innerHTML=CLng(temp)
Field=CLng(temp)*QHCoef
HDisplay.innerHTML=FormatNumber(Field, 3)
temp=Round(CLng(temp)*100/65536)
if temp=0 then temp=1 if temp=100 then temp=99 td1.width=temp & "%"
td2.width=(100-temp) & "%"
pubuf=""
if FScanU then call SetTimeout("public_UTrigger", PUDelay)
if FScanD then call SetTimeout("public_DTrigger", PUDelay)
end if
end sub
sub public_UTrigger
call PUPort.Write("+")
end sub
sub public_DTrigger
call PUPort.Write("-")
end sub
function public_get_Field
public_get_Field=Field
end function
function public_get_Setup
public_get_Setup=SetupPU.style.display="block"
end function
sub public_put_Setup(val)
if val then SetupPU.style.display="block" else SetupPU.style.display="none"
end sub
</script>
<fieldset style="width: 188">
<legend>Field</legend>
H<sub>Q</sub> ~ <span class="display" id="HDisplay">00.00
</span> kOe Q<sub>H</sub> =
<span class="display" id="QHDisplay">00000</span><br>
<table border="0" height="5" width="170" cellspacing="0" cellpadding="0"
bgcolor="#000000"><tr><td width="0%" bgcolor="#ff0000" id="td1"></td>
<td width="100%" id="td2"></td></tr></table>
<button id="HDownBtn" style="width: 60"><< Down</button>
<button id="HStopBtn" style="width: 60">| | Pause</button>
<button id="HUpBtn" style="width: 50">Up >></button>
</fieldset>
<div id="SetupPU">
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<td>Port:</td><td align="right"><select id="PUComPort" size=1>
<option selected value="1">COM1</option>
<option value="2">COM2</option>
<option value="3">COM3</option>
<option value="4">COM4</option>
<option value="5">COM5</option>
<option value="6">COM6</option>
<option value="7">COM7</option>
<option value="8">COM8</option>
</select></td>
</tr>
<tr>
<td>Step:</td><td align="right"><select id="PUStepSelect" size=1>
<option value="01">1</option>
<option value="02">2</option>
<option value="05">5</option>
<option selected value="0A">10</option>
<option value="14">20</option>
</select></td>
</tr>
<tr>
<td>Delay, ms:</td><td align="right"><select id="PUDelaySelect" size=1>
<option value="50">50</option>
<option selected value="100">100</option>
<option value="500">500</option>
</select></td>
</tr>
<tr>
<td>QHCoef:</td><td align="right"><input type="text"
size="10" value="" id="QHCoefEdit"></td>
</tr>
</table>
</div>
<object classid="clsid:673AAF16-9A0B-11D4-B2A4-FD6847C75367"
id="PUPort" width="1" height="1">
</object>
</body>
</html>

Панель управления источником питания соленоида в составе системы автоматизации измерений магнетосопротивления.
Сценарий внедрен в контейнер - скриптлет (группа элементов управления "Field").
|
|