Цитата Сообщение от Валенок Посмотреть сообщение
Если взять из слейва нужно int16, то int16_to_int32 и работаете c int32
Если отправлять в слейв нужно int16 - то работаете и кладете int32 и всё (уже сказали же)
Если взять из слейва нужно int32 - то склеиваете. Во всех вариантах. Включая Ваш. Но т.к там лежало int32 то и работаете c int32 как и выше.
Если отправлять в слейв нужно int32 - то кладете части. Во всех вариантах. Включая Ваш. Но т.к нужно отправлять int32, то и работаете c int32 как и выше.

Т.е. int32 подойдет во всех случаях, а int16 - в некоторых. (Дальше про стиральный порошок который лучше)
Вроде понял, что Вы хотите! В смысле всегда использовать один макрос DINT(INT32)_TO_FLOAT. Если надо преобразовать INT(INT16), то предварительно преобразовываете его в DINT(INT32).
Короче, мне кажется это не очень логичным, в смысле, чаще всё-таки INT(INT16) встречается, а DINT(INT32) намного реже. Вам надо всё равно знать, что это INT(INT16), иначе правильное преобразование невозможно, уже писал об этом, даже пример приводил! И, мне кажется в FBD проще значение INT(INT16) сразу преобразовать во FLOAT, чем ваше промежуточное преобразование в DINT(INT32). Если Вы говорите в ST это проще, поверю Вам на слово(я в ST не шарю), но это получается частный случай, не более!