FLOAT занимает 2 регистра.gallyamov_mm_91 писал(а): ↑19 мар 2023, 18:58
ushort numInputs = 1; // Количество регистров для запроса
delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
На ПЛК данные хранятся в регистрах D3-5, формат данных данного регистра Int16(по методичке дельты)
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
ushort numInputs = 1; // Количество регистров для запроса
я не совсем верный комментарий возможно сделал, если я правильно понял то ushort numInputs это количество адресов после начального сколько опросит метод .ReadHoldingRegisters()
Допустим
ushort startAddress = 100; // Начальный адрес
ushort numInputs = 3; // Количество регистров для запроса
То метод опросит адреса 100 101 102
я не совсем верный комментарий возможно сделал, если я правильно понял то ushort numInputs это количество адресов после начального сколько опросит метод .ReadHoldingRegisters()
Допустим
ushort startAddress = 100; // Начальный адрес
ushort numInputs = 3; // Количество регистров для запроса
То метод опросит адреса 100 101 102
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Вот описание
- Вложения
-
- Screenshot_20230321-004640_Chrome.jpg (344.83 КБ) 1029 просмотров
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Исходите из этого.pkl писал(а): ↑20 мар 2023, 15:29FLOAT занимает 2 регистра.gallyamov_mm_91 писал(а): ↑19 мар 2023, 18:58
ushort numInputs = 1; // Количество регистров для запроса
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
дело было в нем.
прочел данные, конвертировал методом
private float ConvertFrom(ushort valueTwo, ushort valueOne)
{
byte[][] final = Array.ConvertAll(new ushort[] { valueOne, valueTwo }, delegate (ushort item) { return BitConverter.GetBytes(item); });
return BitConverter.ToSingle(new byte[4] { final[0][0], final[0][1], final[1][0], final[1][1] }, 0);
}
и получил нужный результат
прочел данные, конвертировал методом
private float ConvertFrom(ushort valueTwo, ushort valueOne)
{
byte[][] final = Array.ConvertAll(new ushort[] { valueOne, valueTwo }, delegate (ushort item) { return BitConverter.GetBytes(item); });
return BitConverter.ToSingle(new byte[4] { final[0][0], final[0][1], final[1][0], final[1][1] }, 0);
}
и получил нужный результат
-
- Сообщения: 16
- Зарегистрирован: 18 фев 2023, 12:27
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
нужно было прочесть оба регистра, я все время считывал только один, не до конца поняв метод .ReadHoldingRegisters()
поэтому и не мог нормально конвертировать
поэтому и не мог нормально конвертировать
Re: delta DVP28SV2+овен мв110-224.1тд+тензодатчик
Об этом я вам настойчиво пытался объяснить.