EnglishУкраїнськаmRussian
Login/New
Topic with many replies

Openscada в modbus slave режиме.


| 1 | 2 | Last
Author Message
Written on: 19. 11. 2013 [13:30]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
Возможно ли использование Опенскады в slave режиме?Используется modbus tcp.ПЛК с GPRS модемом имеет серый динамический адрес ,Скада имеет белый статический адрес. ПЛК в режиме modbus master шлет данные на внешний IP.Можно ли это организовать штатными средствами или придется реализовывать через Пользовательский протокол?Если что то напутал поправте, с modbus tcp имею дело впервые.
Written on: 20. 11. 2013 [08:58]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Godzilla" wrote:

Возможно ли использование Опенскады в slave режиме?

Читаем соответствующую документацию: http://wiki.oscada.org/Doc/ModBus#h592-8

Learn, learn and learn better than work, work and work.
Written on: 07. 02. 2014 [12:09]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
Создал узел в транспортные протоколы-Modbus.Принимаю данные с устройства в режиме modbus-slave.Целые числа int32 принимаются без проблем,а вот с float проблема.
Последние 4 байта 3f e4 49 bb(на вкладке отчет) , что по спецификациям IEEE754 о числе одинарной точности должны равнятся 1.78350007534027099609375,но вкладка "Данные" показывает мне число 1533948,5. Id прописал как R_f4w так как адрес равен 0x04 и соответственно занимает 2 регистра.
Если что то напутал прошу прощения.Скриншоты прилагаю.
Attachment

kolt2.JPG (File type: image/jpeg, Size: 45.49 kilobytes) — 1775 downloads
Written on: 07. 02. 2014 [13:15]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Godzilla" wrote:

Последние 4 байта 3f e4 49 bb(на вкладке отчет) , что по спецификациям IEEE754 о числе одинарной точности должны равнятся 1.78350007534027099609375,но вкладка "Данные" показывает мне число 1533948,5. Id прописал как R_f4w так как адрес равен 0x04 и соответственно занимает 2 регистра.
Если что то напутал прошу прощения.Скриншоты прилагаю.

Порядок регистров 4 и 5 обратный просто.

Learn, learn and learn better than work, work and work.
Written on: 07. 02. 2014 [13:27]
Godzilla
Арсен Закоян
Contributor
Topic creator
registered since: 12.02.2013
Posts: 123
"roman" wrote:

"Godzilla" wrote:

Последние 4 байта 3f e4 49 bb(на вкладке отчет) , что по спецификациям IEEE754 о числе одинарной точности должны равнятся 1.78350007534027099609375,но вкладка "Данные" показывает мне число 1533948,5. Id прописал как R_f4w так как адрес равен 0x04 и соответственно занимает 2 регистра.
Если что то напутал прошу прощения.Скриншоты прилагаю.

Порядок регистров 4 и 5 обратный просто.

Ясно,а будет ли добавлено что то для исправления порядка регистров?На данный момент какой выход?
Written on: 07. 02. 2014 [13:49]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Godzilla" wrote:

Ясно,а будет ли добавлено что то для исправления порядка регистров?На данный момент какой выход?

Я и не говорил, что это ошибка!
Документацию читайте, про способы указания регистров составных типов!

Learn, learn and learn better than work, work and work.
Written on: 08. 02. 2014 [19:05]
IrmIngeneer
Константин \m/
Contributor
Sponsor
registered since: 16.09.2010
Posts: 185
Согласно:

http://www.binaryconvert.com/result_float.html?decimal=049053051051057052056044053

число 1533948,5 - это 0x7FFFFFFF. так что дело даже не в последовательности байтов, скорее всего.

Кстати, мне уже приходилось байты вертеть. Дело в том, что ИДМ-2М с какого-то года выпуска (по-моему, с 2005) поменяли порядок байтов в своих посылках. Пришлось использовать специальный шаблон для верчения байтов, см скриншоты.
Attachment

IDM_R.tif (File type: image/tiff, Size: 124.24 kilobytes) — 1436 downloads
IDM_modbus.tif (File type: image/tiff, Size: 107.75 kilobytes) — 1499 downloads
Written on: 08. 02. 2014 [20:00]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"IrmIngeneer" wrote:

http://www.binaryconvert.com/result_float.html?decimal=049053051051057052056044053
число 1533948,5 - это 0x7FFFFFFF. так что дело даже не в последовательности байтов, скорее всего.

Тогда в Intel float не IEEE754, или что здесь не так?

JAVASCRIPT
union { uint32_t i; float f; } wl;
wl.f = val->getR(0);
val->setI(1,wl.i&0xFFFF);
val->setI(2,(wl.i>>16)&0xFFFF);


Хотя именно Intel предложил IEEE754: http://en.wikipedia.org/wiki/Floating_point

А вообще с разделителем будьте внимательны и глупостей не рассказывайте: http://www.binaryconvert.com/result_float.html?decimal=049053051051057052056046053

"IrmIngeneer" wrote:

Кстати, мне уже приходилось байты вертеть. Дело в том, что ИДМ-2М с какого-то года выпуска (по-моему, с 2005) поменяли порядок байтов в своих посылках. Пришлось использовать специальный шаблон для верчения байтов, см скриншоты.

А порядок байтов тут при чём, и чем обратный порядок регистров (R_f:5,4) не устроил?

Learn, learn and learn better than work, work and work.
Written on: 08. 02. 2014 [20:49]
IrmIngeneer
Константин \m/
Contributor
Sponsor
registered since: 16.09.2010
Posts: 185
"roman" wrote:

"IrmIngeneer" wrote:

http://www.binaryconvert.com/result_float.html?decimal=049053051051057052056044053
число 1533948,5 - это 0x7FFFFFFF. так что дело даже не в последовательности байтов, скорее всего.

Тогда в Intel float не IEEE754, или что здесь не так?

JAVASCRIPT
union { uint32_t i; float f; } wl;
wl.f = val->getR(0);
val->setI(1,wl.i&0xFFFF);
val->setI(2,(wl.i>>16)&0xFFFF);


Хотя именно Intel предложил IEEE754: http://en.wikipedia.org/wiki/Floating_point

А вообще с разделителем будьте внимательны и глупостей не рассказывайте: http://www.binaryconvert.com/result_float.html?decimal=049053051051057052056046053

"IrmIngeneer" wrote:

Кстати, мне уже приходилось байты вертеть. Дело в том, что ИДМ-2М с какого-то года выпуска (по-моему, с 2005) поменяли порядок байтов в своих посылках. Пришлось использовать специальный шаблон для верчения байтов, см скриншоты.

А порядок байтов тут при чём, и чем обратный порядок регистров (R_f:5,4) не устроил?


В самом деле, разделитель меня подвел :oops: ! Впредь буду осторожнее.

R_f:5,4 - интересно, надо будет попробовать. Видимо, судьба такой, - не искать легких путей... :)
Written on: 09. 02. 2014 [09:29]
alecs
Александр Курачанский
registered since: 05.03.2013
Posts: 28
Прошу прощение за вторжение,но по теме. У нас с продукцией ОВЕН тоже проблемы. В документации написано одно, а на самом деле наоборот.
Простая перестановка регистров запроса и все данные на месте. Иногда складывается впечатление что программист пишет по одной документации, а
описание железяки пишет секретарша. Простите наболело :)
| 1 | 2 | Last



3025