Справка по PULSM


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').