API симулятора

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Описание симулятора Mod_RSSim > Автоматизация с помощью скрипта >

API симулятора

API симулятора

mbul_mail GetRegisterValue (REG_TYPE as long , ADDRESS as long) As int

mbul_mail SetRegisterValue (REG_TYPE as long, ADDRESS as long, REGISTERVALUE as long) As none

mbul_mail DisableStation (STATIONID as int) none

mbul_mail EnableStation (STATIONID as int) None

mbul_mail DisplayAbout( ) None

mbul_mail GetLastRunTime( ) As long

mbul_mail StationEnabled (STATIONID as int) As long

mbul_mail TransmitRegisters (STATIONSRC as int, STATIONDEST as int, REG_TYPE as long, ADDRESS as long, REGISTERS as long) As long

mbul_mail AddDebugString (STATIONID as string) As None

mbul_mail TransactionBusy () As long

mbul_mail Пример скрипта

Помимо обычных функций (см. В помощь разработчику скрипта ), в скрипте могут использоваться описанные ниже функции API симулятора.

GetRegisterValue (REG_TYPE as long , ADDRESS as long) As int

Возвращает текущее значение указанного регистра Modbus/AB:

mbul   REG_TYPE – тип регистра (номер файла для AB):

mbul   0 – Digital Inputs;

mbul   1 – Coil Outputs;

mbul   2 – Analogue Inputs;

mbul   3 – Holding Registers;

mbul   4 – Extended Registers;

mbul   ADDRESS – номер регистра или точки I/O (нуль всегда соответствует первому элементу).

Пример 1. 0 – это 40001 если REG_TYPE = 3.

Пример 2. 63 – это 64-я output coil, если REG_TYPE = 1.

SetRegisterValue (REG_TYPE as long, ADDRESS as long, REGISTERVALUE as long) As none

Устанавливает значение указанного регистра Modbus/AB:

mbul   REG_TYPE – тип регистра (номер файла для AB):

mbul   0 – Digital Inputs;

mbul   1 – Coil Outputs;

mbul   2 – Analogue Inputs;

mbul   3 – Holding Registers;

mbul   4 – Extended Registers;

mbul   ADDRESS – номер регистра или точки I/O (нуль всегда соответствует первому элементу).

Пример 1. 0 – это 40001 если REG_TYPE = 3.

Пример 2. 63 – это 64-я output coil, если REG_TYPE = 1.

mbul   REGISTERVALUE – устанавливаемое значение регистра, допустимый диапазон – (-32767, +32767), другие значения клиппируются.

DisableStation (STATIONID as int) none

Отключает станцию Modbus Slave так, как если бы станция не существовала в системе/сети:

mbul   STATIONID – номер станции Modbus, допустимый диапазон – (0, 255), 0 – широковещательная станция.

EnableStation (STATIONID as int) None

Восстанавливает наличие станции Modbus Slave в системе/сети (см. также описание функции DisableStation):

mbul   STATIONID – номер станции Modbus, допустимый диапазон – (0, 255), 0 – широковещательная станция.

DisplayAbout( ) None

Отображает диалог About MOD_RSsim (см. Встроенная справка ). Диалог отображается до тех пор, пока пользователь не закроет его.

GetLastRunTime( ) As long

Возвращает время (в миллисекундах), затраченное на последнее выполнение скрипта. Функция возвращает (-1) при первом выполнении скрипта или в случае невозможности выполнить скрипт до конца.

StationEnabled (STATIONID as int) As long

Возвращает состояние указанной станции (0 – отключена, 1 – подключена):

mbul   STATIONID – номер станции Modbus, допустимый диапазон – (0, 255), 0 – широковещательная станция.

TransmitRegisters (STATIONSRC as int, STATIONDEST as int, REG_TYPE as long, ADDRESS as long, REGISTERS as long) As long

Посылает значение в указанный PLC Slave (симуляция должна быть запущена и должна поддерживать режим MASTER).

Этa фунkция нe пoддepживaeтcя Modbus в нacтoящee вpeмя.

mbul   STATIONSRC – станция-источник Allen-Bradley (игнорируется протоколом Modbus);

mbul   STATIONDEST – назначение или ID станции-приемника;

mbul   REG_TYPE – номер файла для AB;

mbul   ADDRESS – номер регистра или точки I/O (нуль всегда соответствует первому элементу);

mbul   REGISTERS – число регистров для передачи, особенности кадра протокола не проверяются перед посылкой.

AddDebugString (STATIONID as string) As None

Посылает текст в отладчик коммуникаций, этот текст предваряется символами "##".

TransactionBusy () As long

Возвращает TRUE если эмулируемый прибор поддерживает режим MASTER, но в настоящий момент занят (выполняется транзакция).

Пример скрипта

Данный пример показывает, как инкрементировать небольшое число регистров, а также непрерывно отключать/подключать первые 12 станций.

dim x

dim n

dim runtime

dim station

n=0

for n=0 to 240

x = getregistervalue(3,n)

SetRegisterValue 3, n, x+1

next

runtime = Getlastruntime

SetRegisterValue 3, 241, runtime

if (StationEnabled (station)) then

Disablestation station

else

enablestation station

end if

SetRegisterValue 3, 242, station

station = station + 1

if station > 12 then station = 0