PDA

Просмотр полной версии : СМИ2 и modbus



ribamuka
12.03.2014, 19:57
Делаю приложение на C# чтобы "пощупать" как работает СМИ2, чтобы в дальнейшем привязать СМИ2 стороннему оборудованию.

Прочитал РЭ, в нем показано как с помощью modbus отобразить строку, попробовал - все получилось.
Пробую теперь отобразить float и ничего не получается, вот конкретные вопросы:
1. Float размещается в регистре с каким размером ячейки 2 или 4 байта ?
2. Какой должен быть порядок байт в ячейки для Float и как хранится дробная и десятичная часть ?
3. Можете показать пример того как отобразить Float, такой же пример (который в РЭ) как и для String, но только для работы с Float ?

P.S.
Библиотеки от производителя никакие не использую т.к. необходима реализация вручную, чтобы можно было ее перенести в стороннее устройство, которое никаких библиотек не поддерживает.

lara197a
12.03.2014, 20:20
Так-то флоат вегда был 4 байта.
Если что, то все в векипедии есть, в тч и порядок байт и положение знака и экспонента с мантисой. все стандартно.

ribamuka
19.03.2014, 18:46
Спасибо, решил задачу

goldenlife
15.04.2014, 15:25
Теперь я напишу=)
Провел эксперимент пробный, далее тоже задумываюсь использовать для отображения Веса от АЦП от ОВЕН для тензодатчиков...
но вес у меня будет в пределах 5-6 тонн, т.е. я получу погрешность не только в работе электрооборудования, но и в некорректной передаче данных.

Зав № 42643140104005287

Очень интересно получается:
передаю float32 от HMI в СМИ-2 значением в 9999, а СМИ-2 отображает 9984.
при значении в HMI 8888 - СМИ-2 отображает 8832.
при значении 7777 ------ 7776.
6666 ---- 6656
5555 ---- 5536
4444 ---- 4416
3333 ---- 3328
2222 ---- 2208
1111 ---- 1104
1000 ---- 1000
900 ------ 900.0
и далее всё правильно идет...
в чем может быть проблема???

HMI - Weintek MT8070i,
индикатор СМИ-2 от Овен.

Евген911
23.04.2014, 17:43
Теперь я напишу=)
Провел эксперимент пробный, далее тоже задумываюсь использовать для отображения Веса от АЦП от ОВЕН для тензодатчиков...
но вес у меня будет в пределах 5-6 тонн, т.е. я получу погрешность не только в работе электрооборудования, но и в некорректной передаче данных.

Зав № 42643140104005287

Очень интересно получается:
передаю float32 от HMI в СМИ-2 значением в 9999, а СМИ-2 отображает 9984.
при значении в HMI 8888 - СМИ-2 отображает 8832.
при значении 7777 ------ 7776.
6666 ---- 6656
5555 ---- 5536
4444 ---- 4416
3333 ---- 3328
2222 ---- 2208
1111 ---- 1104
1000 ---- 1000
900 ------ 900.0
и далее всё правильно идет...
в чем может быть проблема???

HMI - Weintek MT8070i,
индикатор СМИ-2 от Овен.

Все проверил в режиме Lectus - master, СМИ2 - slave. задавал указанные вами значения и СМИ2 все корректно отображал.