Средства разработки (SDK)

 

OnitexКомплект средств для разработки программного обеспечения OsmModbusControl SDK включает в себя две библиотеки для комплексной работы с устройствами по протоколу ModbusRTU:

  • OsmModbusController.dll - непосредственная работа с регистрами устройств, подходит для любого типа устройств с поддержкой протокола ModbusRTU.
  • OsmStepMotorController.dll - высокоуровневые команды для управления шаговым двигателем и изменения настроек контроллера.

Библиотека OsmModbusController.dll обеспечивает возможность управления устройствами по протоколу Modbus RTU через последовательный порт. Библиотека использует код стандартной библиотеки NModbus.dll, расширяя ее возможности в плане поддержки управления контроллерами серии OSM (и другими устройствами с поддержкой протокола Modbus RTU), а также обеспечивает стабильность работы благодаря разделению потоков выполнения и контролю над потоками. Позволяет задействовать в программном проекте следующий набор функциональных возможностей:

  • Поддержка стандартной реализации протокола Modbus RTU Serial Master, используемой в устройствах OSM серии RA.
  • Позволяет выполнять операции чтения/записи в регистры хранения (holding registers) и в регистры ввода (input registers) с обязательной явной типизацией данных для минимизации возможности появления ошибок.
  • Автоматическое преобразование различных типов целочисленных данных (byte, sbyte, ushort (UInt16), short (Int16), uint (UInt32), int (Int32)) для корректной записи в 16 битные регистры устройства (аналогично реализована функция чтения).
  • Операции работы с портом, операции чтения из регистров и операции записи в регистры выполняются в отдельных потоках, что приводит к повышению производительности даже на однопроцессорных системах.
  • Реализованный контроль над потоками чтения/записи позволяет отловить момент некорректной обработки операций чтения/записи со стороны устройства (например, в случае отключения питания) и произвести отмену операции без задержек в работе программы. При этом происходит генерация строго типизированного исключения с подробным описанием.
  • Возможность выставления времени таймаута от отправки запроса до ответа контроллера с выходом из операции по таймауту.
  • Возможность выставления числа повторов операций чтения/записи (и величины задержки между повторами) до генерации исключения.

Библиотека OsmStepMotorController.dll построена на базе OsmModbusController.dll и обеспечивает следующие возможности управления шаговым двигателем и контроллером в реальном времени с ПК:

  • Контроль скорости: стартовая скорость, конечная скорость, требуемая скорость, ускорение/замедление, количество шагов ускорения/замедления, обновляемые в реальном времени данные о текущей скорости.
  • Контроль положения: текущая позиция по внутреннему счетчику, установка конечной позиции, текущая позиция по данным энкодера (при режиме работы с энкодером).
  • Смена направления вращения "на лету".
  • Контроль тока.
  • Контроль времени перехода в спящий режим и установка значения тока в спящем режиме.
  • Установка режимов микрошага: смена режима микрошага "на лету".
  • Установка ограничений на число шагов в командах движения.
  • Работа со входами устройства: счетчик по прерываниям на входе EN (возможно чтение значения счетчиков из программы), раздельная установка разрешений прерываний по входам.
  • Управление сменой режимов входа реверс: режим смены направления вращения по сигналу, режим счетчика прерываний, режим счетчика с защитой от дребезга контактов, режим энкодера.
  • Возможность удобного управления шаговым двигателем из программного комплекса LabView (поддерживается версия LabView 8.6 и выше). Библиотека разработана полностью совместимой с LabView.NetAdaptor, что позволяет легко подключить ее к вашему виртуальному прибору LabView, обеспечив весь необходимый функционал для мониторинга состояния и управления шаговым двигателем с помощью виртуального прибора (Virtual Instrument).

К библиотекам приложены файлы контекстной документации (в формате XML) для поддержки IntelliSense (позволяет Visual Studio отображать описания для методов и классов в момент набора пользователем кода):

IS_example

Дополнительная документация по OnitexModbusControl_SDK:

По всем вопросам можно обратиться по адресу Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript .

Скачать набор средств для разработчика:

Файлы Документация Примечание
OsmModbusControl_SDK_v1.0.1.11 Документация на OsmModbusControl_SDK_v1.0.1.11 устаревшая версия
OsmModbusControl_SDK_v2.0.5.23 Документация на OsmModbusControl_SDK_v2.0.5.23 рекомендуется

 

Подключение библиотеки OsmModbusControl.dll к CLR-проекту Visual Studio на C#

Для того, чтобы подключить библиотеку к проекту, необходимо сделать следующее:
1. Перенести папку OsmModbusControl.dll из архива с SDK в папку проекта (желательно).
2. Открыть в Visual Studio свой проект (или создать новый), и добавить ссылку на файл OsmModbusControl.dll через Обозреватель решений (Solution Explorer). Для этого необходимо кликнуть правой кнопкой мыши по пункту Ссылки (References) и выбрать пункт Добавить ссылку... (Add references...):

AddReferences_1

3. В появившимся окне необходимо перейти на вкладку Обзор (Browse), перейти в папку OsmModbusControl.dll в папке проекта, выбрать файл OsmModbusControl.dll и нажать Ок. Все остальные, необходимые для работы библиотеки, будут добавлены в проект автоматически.

AddReferences_2

4. Подключить ссылку на пространство имен OsmModbusControl  в исходном коде вашего проекта, используя директиву using, после чего можно использовать классы и методы библиотеки. Для более подробной информации см. пример использования и документацию.

Подключение библиотеки OsmModbusControl.dll к CLR-проекту Visual Studio на Visual C++

Для того, чтобы подключить библиотеку к проекту, необходимо сделать следующее:
1. Перенести папку OsmModbusControl.dll из архива с SDK в папку проекта (желательно).
2. Открыть в Visual Studio свой проект (или создать новый), и добавить ссылку на файл OsmModbusControl.dll через Обозреватель решений (Solution Explorer). Для этого необходимо кликнуть правой кнопкой мыши по названию проекта и выбрать в меню пункт Ссылки (References):
AddReferences_cpp_13. В появившимся окне необходимо нажать кнопку Добавить новую ссылку... (Add New Reference...):
AddReferences_cpp_2
4. В появившимся окне необходимо перейти на вкладку Обзор (Browse), перейти в папку OsmModbusControl.dll в папке проекта, выбрать файл OsmModbusControl.dll и нажать Ок. Все остальные, необходимые для работы библиотеки, будут добавлены в проект автоматически.
AddReferences_cpp_3

5. Прописать в заголовочном файле вашего проекта ссылку на пространство имен OsmModbusControl , после чего можно использовать классы и методы библиотеки, как это показано в следующем примере консольного приложения (использование библиотеки в визуальных приложениях (Windows Forms) аналогично, для более подробной информации см. пример использования и документацию):


// Test.cpp: пример простейшего консольного приложения.
#include "stdafx.h"
 
using namespace System;
using namespace OsmModbusControl; // Подключение пространства имен.
 
// После этого можно использовать классы и методы пространства имен OsmModbusControl:
void ConnectAndStart()
{
    // Создание экземпляра объекта типа ModbusDriver:
    OsmModbusControl::ModbusDriver modbusDriver("COM1");
    // Подключение к устройству:
    modbusDriver.Connect();
    // Запись в устройство с адресом "1" в регистр с адресом "5" значения "2":
    modbusDriver.WriteByte_HoldingRegisters(1, 5, 2);
}
 
int main(array<System::String ^> ^args)
{
    // Вызов функции:
    ConnectAndStart();
    return 0;
}
 

 

Подключение библиотеки OsmModbusControl.dll к CLR-проекту Visual Studio на Visual Basic

 

 

Для того, чтобы подключить библиотеку к проекту, необходимо сделать следующее:

1. Перенести папку OsmModbusControl.dll из архива с SDK в папку проекта (желательно).

2. Открыть в Visual Studio свой проект (или создать новый) и добавить ссылку на файл OsmModbusControl.dll через Обозреватель решений (Solution Explorer). Для этого необходимо кликнуть правой кнопкой мыши по созданному решению и выбрать пункт Добавить ссылку... (Add references...) :

3. В появившемся окне необходимо перейти на вкладку Обзор (Browse), перейти в папку OsmModbusControl.dll в папке проекта, выбрать файл OsmModbusControl.dll и нажать Ок. Все остальные, необходимые для работы библиотеки, будут добавлены в проект автоматически.

4. Создать класс-наследник в исходном коде вашего проекта:


' Создаём класс-наследник класса OsmModbusControl
Public Class  TestClass

    ' Указываем имя базового класса.
    ' При правильном подключении должна появиться контекстная подсказка (VS 2010)
Inherits  OsmModbusControl.ModbusDriver

    ' Объявляем конструктор созданного класса
    Public Sub New ( ByVal  portNameVB As String )

        ' Обращаемся к конструктору базового класса
        MyBase.New(portNameVB)

    End Sub
End Class
 

После чего можно использовать методы библиотеки. Для более подробной информации см. пример использования и документацию.

 

 

Подключение библиотеки OsmModbusControl.dll к проекту Visual Studio MFC с помощью параметра /clr

 

 

 

Для того, чтобы подключить библиотеку к проекту, необходимо сделать следующее:

1. Перенести папку OsmModbusControl.dll из архива с SDK в папку проекта (желательно).

2. Открыть в Visual Studio свой проект (или создать новый) и добавить ссылку на файл OsmModbusControl.dll через Обозреватель решений (Solution Explorer). Для этого необходимо кликнуть правой кнопкой мыши по созданному решению и выбрать пункт Ссылки... (References...):

3. В появившемся окне необходимо нажать кнопку Добавить новую ссылку... (Add new references...):

4. В новом окне необходимо перейти на вкладку Обзор (Browse), перейти в папку OsmModbusControl.dll, выбрать файл OsmModbusControl.dll и нажать Ок. Все остальные, необходимые для работы библиотеки, будут добавлены в проект автоматически.

5. В окне Обозреватель решений щелкните правой кнопкой мыши проект и выберите пункт Свойства:

6. В диалоговом окне Свойства проекта разверните узел Свойства конфигурации и выберите пункт Общие. Справа, в области Значения по умолчанию для проекта установите для параметра Поддержка общеязыковой среды выполнения (CLR) значение Поддержка общеязыковой среды выполнения (/clr). Убедитесь, что в этой же области для параметра Использование MFC установлено значение Использовать MFC в общей DLL:

7. В разделе Свойства конфигурации разверните узел C/C++ и выберите пункт Общие. Убедитесь, что для параметра Формат отладочной информации установлено значение База данных программы (/Zi) (не /ZI):

8. Выберите узел Создание кода. Установите для параметра Включить минимальное перестроение значение Нет (/Gm-). Установите для параметра Основные проверки времени выполнения значение По умолчанию. Убедитесь, что для параметра Библиотека времени выполнения установлено значение Многопоточная DLL с возможностью отладки (/MDd) или Многопоточная DLL (/MD):

9. Прописать в заголовочном файле вашего проекта ссылку на пространство имен OsmModbusControl , после чего можно использовать классы и методы библиотеки, как это показано в следующем примере:

using namespace OsmModbusControl; // Подключение пространства имен.
 
// После этого можно использовать классы и методы пространства имен OsmModbusControl:
void ConnectAndStart(){
    // Создание экземпляра объекта типа ModbusDriver:
    OsmModbusControl::ModbusDriver modbusDriver("COM1");
    // Подключение к устройству:
    modbusDriver.Connect();
    // Запись в устройство с адресом "1" в регистр с адресом "5" значения "2":
    modbusDriver.WriteByte_HoldingRegisters(1, 5, 2);

В классе ModbusDriver присутствует свойство только для записи PortName. Имя порта в формате "COMn", где n - номер порта. Изменение этого свойства автоматически вызывает функцию Disconnect(), после чего необходим вызов функции Connect():

// Смена имени порта:
modbusDriver.PortName = "COM3";
// Подключение к устройству:
modbusDriver.Connect();

 

В этом случае повторная инициализация экземпляра объекта ModbusDriver через вызов конструктора не требуется. Управляемый CLR код в MFC работает как статический объект.

 

Подключение библиотеки OsmModbusControl.dll к проекту Visual Studio Win32 с помощью параметра /clr

 

 

Для того, чтобы подключить библиотеку к проекту, необходимо сделать следующее:

1. Перенести папку OsmModbusControl.dll из архива с SDK в папку проекта (желательно).

2. Открыть в Visual Studio свой проект (или создать новый) и добавить ссылку на файл OsmModbusControl.dll через Обозреватель решений (Solution Explorer). Для этого необходимо кликнуть правой кнопкой мыши по созданному решению и выбрать пункт Ссылки... (References...):

3. В появившемся окне необходимо нажать кнопку Добавить новую ссылку... (Add new references...):

4. В новом окне необходимо перейти на вкладку Обзор (Browse), перейти в папку OsmModbusControl.dll, выбрать файл OsmModbusControl.dll и нажать Ок. Все остальные, необходимые для работы библиотеки, будут добавлены в проект автоматически.

5. В окне Обозреватель решений щелкните правой кнопкой мыши проект и выберите пункт Свойства:

6. В диалоговом окне Свойства проекта разверните узел Свойства конфигурации и выберите пункт Общие. Справа, в области Значения по умолчанию для проекта установите для параметра Поддержка общеязыковой среды выполнения (CLR) значение Поддержка общеязыковой среды выполнения (/clr):

7. В разделе Свойства конфигурации разверните узел C/C++ и выберите пункт Общие. Убедитесь, что для параметра Формат отладочной информации установлено значение База данных программы (/Zi) (не /ZI):

8. Прописать в заголовочном файле вашего проекта ссылку на пространство имен OsmModbusControl , после чего можно использовать классы и методы библиотеки, как это показано в следующем примере:

// Win32Console.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
using namespace OsmModbusControl; // Подключение пространства имен.
 
// После этого можно использовать классы и методы пространства имен OsmModbusControl:
void ConnectAndStart(){
        // Создание экземпляра объекта типа ModbusDriver:
        ModbusDriver modbusDriver("COM12");
        // Подключение к устройству:
        modbusDriver.Connect();
        // Запись в устройство с адресом "1" в регистр с адресом "5" значения "2":
        modbusDriver.WriteByte_HoldingRegisters(1, 5, 1);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
         // Вызов функции:
        ConnectAndStart();
        return 0;
} 

В классе ModbusDriver присутствует свойство только для записи PortName. Имя порта в формате "COMn", где n - номер порта. Изменение этого свойства автоматически вызывает функцию Disconnect(), после чего необходим вызов функции Connect():

// Смена имени порта:
modbusDriver.PortName = "COM3";
// Подключение к устройству:
modbusDriver.Connect();

В этом случае повторная инициализация экземпляра объекта ModbusDriver через вызов конструктора не требуется. Управляемый CLR код в MFC работает как статический объект.