Средства разработки (SDK)
Комплект средств для разработки программного обеспечения 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 отображать описания для методов и классов в момент набора пользователем кода):

Дополнительная документация по OnitexModbusControl_SDK:
- Примеры подключения библиотеки к различным типам проектов (c краткими пояснительными примерами работы с библиотекой) подробно рассмотрены в статье Подключение OsmModbusControl_SDK к вашему проекту.
- Работа с SDK в ОС Linux описана в статье Управление шаговым двигателем в ОС Linux.
- Пример использования библиотеки - готовый проект для Visual Studio2008/2010/SharpDevelop на языке С# - в папке OsmModbusControlExample в архиве с 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...):

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

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

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

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 работает как статический объект.