delta DVP28SV2+овен мв110-224.1тд+тензодатчик
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
delta DVP28SV2+овен мв110-224.1тд+тензодатчик
добрый день.
начал разбираться в вопросе и возникли трудности.
на данный момент написана прошивка на дельте которая подключается к овену по 485 интерфейсу и считывает данные с тензодатчика и сохраняет данные в определенные регистры.
написана в C# программа которая инициализирует подключение с ПК до дельты по 232 интерфейсу и должна считывать данные с COM-порта, но ничего не приходит.
я так понимаю что для полноценного опроса ПЛК необходимо подключать и использовать библиотеку OWEN_IO. но пока не совсем понимаю как это реализовать. прошу помочь разобраться с вопросом
начал разбираться в вопросе и возникли трудности.
на данный момент написана прошивка на дельте которая подключается к овену по 485 интерфейсу и считывает данные с тензодатчика и сохраняет данные в определенные регистры.
написана в C# программа которая инициализирует подключение с ПК до дельты по 232 интерфейсу и должна считывать данные с COM-порта, но ничего не приходит.
я так понимаю что для полноценного опроса ПЛК необходимо подключать и использовать библиотеку OWEN_IO. но пока не совсем понимаю как это реализовать. прошу помочь разобраться с вопросом
- Вложения
-
- прога на С#.7z
- (14.64 КБ) 57 скачиваний
-
- SV2-owen(прошивка написанная на WplSoft).7z
- (10.6 КБ) 53 скачивания
-
- опрос овена.PNG (10.74 КБ) 1168 просмотров
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Нет. Для работы с Дельта нужна библиотека Модбас. Вы же из Дельты пытаетесь данные вытащить.gallyamov_mm_91 писал(а): ↑14 мар 2023, 13:03я так понимаю что для полноценного опроса ПЛК необходимо подключать и использовать библиотеку OWEN_IO.
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
ну так то с дельты. но единственное приближенное что я нашел на форумах это использование именно библиотеки OWEN
примерно так это вроде выглядит
byte[] dataFromDevice = owenProtocol.OwenRead(20, AddressLengthType.Bits8, "dr.dG");
но не могу понять как это использовать
примерно так это вроде выглядит
byte[] dataFromDevice = owenProtocol.OwenRead(20, AddressLengthType.Bits8, "dr.dG");
но не могу понять как это использовать
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Ну так не нужно искать там где светло, нужно искать там, где потеряли.
Еще раз. Дельта по обеим компортам работает по протоколу Модбас. И пытаться работать по протоколу Овен с ней бесполезно.
Еще раз. Дельта по обеим компортам работает по протоколу Модбас. И пытаться работать по протоколу Овен с ней бесполезно.
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
ок. не могли бы направить я так понимаю мне то то из этого надо использовать?
- Вложения
-
- 1.PNG (72.75 КБ) 1143 просмотра
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
К сожалению на Си не работаю. Могу только посоветовать найти пример опроса Модбас устройства и скормить ему адрес и настройки связи вашего ПЛК. Адреса Модбас регистров дельты есть в мануале по программированию ПЛК.
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
если я копаю в нужную сторону то похоже следует использовать библиотеку nmodbuspc.dll
какой из методов лучше использовать,с учетом того что я либо считываю D1050, либо промежуточные регистры куда я записал результаты опроса овена(тензодатчика) D3,D4,D5?
1)bool[] ReadCoils(byte slaveID,ushort startAddress,ushort numOfPoints)
2)bool[] ReadInputs(byte slaveID,ushort startAddress,ushort numOfPoints)
3)ushort[] ReadHoldingRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
4)ushort[] ReadInputRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
в качестве параметра "byte slaveID" я так понимаю должен использовать адрес дельты(у меня он 16), "ushort startAddress" это получается адрес регистра, я нашел какую то карту регситров и если я правильно понимаю регистрам D3,4,5,1050 ответствуют 4099, 4100, 4101 и 5146 так?
а за что отвечает компонент "numOfPoints"? количество регистров которое опросит метод после компонента "ushort startAddress" ?
какой из методов лучше использовать,с учетом того что я либо считываю D1050, либо промежуточные регистры куда я записал результаты опроса овена(тензодатчика) D3,D4,D5?
1)bool[] ReadCoils(byte slaveID,ushort startAddress,ushort numOfPoints)
2)bool[] ReadInputs(byte slaveID,ushort startAddress,ushort numOfPoints)
3)ushort[] ReadHoldingRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
4)ushort[] ReadInputRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
в качестве параметра "byte slaveID" я так понимаю должен использовать адрес дельты(у меня он 16), "ushort startAddress" это получается адрес регистра, я нашел какую то карту регситров и если я правильно понимаю регистрам D3,4,5,1050 ответствуют 4099, 4100, 4101 и 5146 так?
а за что отвечает компонент "numOfPoints"? количество регистров которое опросит метод после компонента "ushort startAddress" ?
- Вложения
-
- 2.PNG (45.24 КБ) 1124 просмотра
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Намофпоинтс я так подозреваю это количество регистров которые надо считать со стартового адреса. Вы точно адрес на 232 интерфейс установили???
Для модулей овен желательно поставить паузу между опросами 100 мс поставить. Я пока не поставил нормально не отпрашивался модуль.
Для модулей овен желательно поставить паузу между опросами 100 мс поставить. Я пока не поставил нормально не отпрашивался модуль.
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Я с овена данные уже получил и положил их в регистры D3 D4 D5 в дельту, теперь задача вытащить эти данные из дельты на ПК
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Ну откройте спецификацию протокола Модбас. Там же все запросы описаны. И все вам станет ясно. Только убедитесь, что в D1050 будут нужные вам данные. Думается там будет адрес слейва, который опрашиваете. Да еще и в ASCII формате.gallyamov_mm_91 писал(а): ↑14 мар 2023, 23:16если я копаю в нужную сторону то похоже следует использовать библиотеку nmodbuspc.dll
какой из методов лучше использовать,с учетом того что я либо считываю D1050, либо промежуточные регистры куда я записал результаты опроса овена(тензодатчика) D3,D4,D5?
1)bool[] ReadCoils(byte slaveID,ushort startAddress,ushort numOfPoints)
2)bool[] ReadInputs(byte slaveID,ushort startAddress,ushort numOfPoints)
3)ushort[] ReadHoldingRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
4)ushort[] ReadInputRegisters(byte slaveID,ushort startAddress,ushort numOfPoints)
в качестве параметра "byte slaveID" я так понимаю должен использовать адрес дельты(у меня он 16), "ushort startAddress" это получается адрес регистра, я нашел какую то карту регситров и если я правильно понимаю регистрам D3,4,5,1050 ответствуют 4099, 4100, 4101 и 5146 так?
а за что отвечает компонент "numOfPoints"? количество регистров которое опросит метод после компонента "ushort startAddress" ?
Для начала, я бы прочитал данные с ПЛК каким нибудь ОПС сервером. Например от Овен ( он бесплатный). После того как ОПС сервер будет получать нужные данные, можно приступать к отладке приложения.