PULSM - PULSAR SMART
Документация: Worksheet/PULSM.
Драйвер PULSM служит для управления источником питания (ИП) «ПУЛЬСАР СМАРТ» производства ООО «Навиком», г. Ярославль.
В задачи драйвера входит:
Для именования кривых, тегов, сенсоров, окон и других программных объектов используются следующие соглашения о наименовании:
Manufacturer:
Navicom
SubSystems:
PULSM - PULSAR SMART
Parameters:
Common:
PollRate - Device polling rate, Hz
ErrorCnt - Device error counter
PULSM:
OpUst_I1 - Setting Current 1
OpUst_I2 - Setting Current 2
OpUst_U1 - Setting Voltage 1
OpUst_U2 - Setting Voltage 2
OpTime - Setting Time
OpCode - Setting Operation Code
OpPolar - Setting Polarity
Measure_I - Measure Current
Measure_U - Measure Voltage
Q - Total Counter
Flags - State Flags
GTime - Total Running time
NUM_VIRT_VIPR - Number of virtual rectifier
Examples:
PULSM.OpCode - Operation Code
PULSM.OpUst_I1 - Setting Current I1
Драйвер (см. программный код pulsm_drv.pas) имеет примерно такую конфигурацию (в качестве префикса системы взято DEMO):
[DeviceList] &DEMO.PULSM.DRV = device software program [&DEMO.PULSM.DRV] Comment = Hardware driver for Pulsar Smart power supply InquiryPeriod = 0 DevicePolling = 10, tpTimeCritical ProgramSource = ..\DaqPas\pulsm_drv.pas Simulator = 0 ; Must be 0 for driver Address = 1 ; MODBUS device address ComPort = 2 ; COM port number ComTimeOut = 500 ; COM I/O timeout,ms ComTimeGap = 10 ; COM I/O timegap PollPeriod = 50 ; Poll period,ms DebugFlags = 3 OpenConsole = 1 tagPULSM = DEMO.PULSM HelpFile = ..\Help\pulsm.htm AnalogOutputs = 14 Link AnalogOutput 0 with curve DEMO.PULSM.POLLRATE history 1000 Link AnalogOutput 1 with curve DEMO.PULSM.ERRORCNT history 1000 Link AnalogOutput 2 with curve DEMO.PULSM.OpUst_I1 history 1000 Link AnalogOutput 3 with curve DEMO.PULSM.OpUst_I2 history 1000 Link AnalogOutput 4 with curve DEMO.PULSM.OpUst_U1 history 1000 Link AnalogOutput 5 with curve DEMO.PULSM.OpUst_U2 history 1000 Link AnalogOutput 6 with curve DEMO.PULSM.Measure_I history 1000 Link AnalogOutput 7 with curve DEMO.PULSM.Measure_U history 1000 Link AnalogOutput 8 with curve DEMO.PULSM.OpCode history 1000 Link AnalogOutput 9 with curve DEMO.PULSM.OpPolar history 1000 Link AnalogOutput 10 with curve DEMO.PULSM.Q history 1000 Link AnalogOutput 11 with curve DEMO.PULSM.Flags history 1000 Link AnalogOutput 12 with curve DEMO.PULSM.GTime history 1000 Link AnalogOutput 13 with curve DEMO.PULSM.NUM_VIRT_VIPR history 1000 ;------ Save custom parameters to INI file CustomIniTagList = [PULSM.CustomParameters.TagList] CustomIniFileRef = ..\..\PULSM_DATA\PULSM_Custom.ini CustomIniSection = [PULSM.CustomParameters] CustomIniBackups = ..\..\PULSM_DATA\Custom CustomIniAutoLoad = 1 CustomIniAutoSave = 0 [] [ConfigFileList] ConfigFile = ..\..\PULSM_DATA\PULSM_Custom.ini [] [SerialPort-COM2] Port = COM2 BaudRate = 115200 Parity = EVEN DataBits = 8 StopBits = 1 [] [DataStorage] DEMO.PULSM.POLLRATE = Curve 0 100 Black 15 1 ; Polling rate, poll/sec DEMO.PULSM.ERRORCNT = Curve 0 100 Black 15 1 ; Device error counter DEMO.PULSM.OpCode = Curve 0 100 Black 15 1 DEMO.PULSM.OpUst_I1 = Curve 0 100 Black 15 1 DEMO.PULSM.OpUst_I2 = Curve 0 100 Black 15 1 DEMO.PULSM.OpUst_U1 = Curve 0 100 Black 15 1 DEMO.PULSM.OpUst_U2 = Curve 0 100 Black 15 1 DEMO.PULSM.OpPolar = Curve 0 100 Black 15 1 DEMO.PULSM.Measure_I = Curve 0 100 Black 15 1 DEMO.PULSM.Measure_U = Curve 0 100 Black 15 1 DEMO.PULSM.Q = Curve 0 100 Black 15 1 DEMO.PULSM.Flags = Curve 0 100 Black 15 1 DEMO.PULSM.GTime = Curve 0 100 Black 15 1 DEMO.PULSM.NUM_VIRT_VIPR = Curve 0 100 Black 15 1 [] [TagList] DEMO.PULSM.CMD.HELP = integer 0 ; Command to call Help DEMO.PULSM.CMD.SAVEINI = integer 0 ; Command to save INI file DEMO.PULSM.CMD.LOADINI = integer 0 ; Command to load INI file DEMO.PULSM.RAMP.ENABLE = integer 0 ; Enable ramping DEMO.PULSM.OpUst_I1 = real 0 ; Setpoint current I1 DEMO.PULSM.OpUst_I2 = real 0 ; Setpoint current I2 DEMO.PULSM.OpUst_U1 = real 0 ; Setpoint voltage U1 DEMO.PULSM.OpUst_U2 = real 0 ; Setpoint voltage U2 DEMO.PULSM.OpTime = integer 0 ; Setpoint ramping time DEMO.PULSM.CMD.POWER = integer 0 ; Command to switch on power []
Для хранения данных, полученных от устройства, используются кривые, подключенные к выходам (AnalogOutputs) и одноименные им теги. Обновление этих кривых и тегов идет автоматически в цикле опроса.
Для задания новых значений параметров источника питания Pulsar Smart используются сообщения:
Сообщения:
@OpUst_I1 v - Задать уставку тока 1 значением v, ампер.
@OpUst_I2 v - Задать уставку тока 2 значением v, ампер.
@OpUst_U1 v - Задать уставку напряжения 1 значением v, вольт.
@OpUst_U2 v - Задать уставку напряжения 2 значением v, вольт.
@OpTime t - Установить время плавной уставки, секунд.
@OpCode n - Отправить ИП код операции n, для включения питания.
Допускается значение n из списка:
0-Пустая операция (останов);
1-Уставка тока или напряжения;
2-Плавная уставка тока и/или напряжения.
@Edit p - Редактировать параметр p ИП. Допускается имя n из списка:
OpUst_I1, OpUst_I2, OpUst_U1, OpUst_U2, OpTime.
@LoadIni - Загрузить параметры ИП из INI файла.
@SaveIni - Сохранить параметры ИП в INI файл.
Примеры сообщений:
@Edit OpUst_I1
@OpUst_U1 50
@OpCode 1
@LoadIni
С помощью механизма сообщений можно выполнять изменение параметров ИП драйвером PULSM программно в реальном времени.
Например, для задания уставки напряжения в 123.45 вольт драйверу (&DEMO.PULSM.DRV) посылается сообщение вызовом DevMsg('&DEMO.PULSM.DRV @OpUst_U1 123.45').