Как считать 4хбайтовое слово по модбасу?

Использование протокола Modbus
Аватара пользователя
Sancho
Полковник
Сообщения: 3999
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 571
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Как считать 4хбайтовое слово по модбасу?

#21

Сообщение Sancho » 18.05.2017{, 09:52}

Kit писал(а):Вот только про функцию я не понял.
Попробую объяснить в моём понимании.
Когда в flprog создаём пользовательские блоки, и используем несколько однотипных в одном проекте, мы, сами того не подозревая, добавляем в код С++ очень много дополнительных, промежуточных, переменных, разного рода констант. Иногда это никак не влияет на конечный результат, но в некоторых случаях может быть критично для общего объёма занимаемой памяти в МК.
А функция - это своего рода подпрограмма, выпоняющаяся при обращении(запросе ) к ней с исходными данными и возвращающая результат.
Например, даже когда написать а=cos b, это и есть одна из разновидностей функций, ведь для вычисления косинуса мк задействует подпрограмму(функцию) cos, которую мы не видим в коде, которая возвращает нам результат.
Простой пример. В проекте необходимо несколько раз  производить для разных переменных одни и теже вычисления по формуле  X=(29+2Y)*3/(44-Z).
Если каждый раз описывать это, то в конечном коде количество переменных и констант, и, соответственно, объём занимаемой ими памяти будет очень велик, вплоть до отказа загрузки в МК.
Но мы опишем как нашу, пользовательскую, функцию: myFunc_1(int Y,int Z) {int X= (29+2Y)*3/(44-Z); return X } , то при необходимости вычислять мы просто напишем:
perem_1 = myFunc_1(perem_2,perem_3);
perem_4 = myFunc_1(perem_5,perem_6);
perem_7 = myFunc_1(perem_8,perem_9);
где perem_N - переменные нашего проекта. Синтаксис С++ не соблюдён.
В итоге, для вычисления будет использована наша функция и количество в проекте разного рода 29, 3, 44 и т.д. уменьшится в разы!
Эта-же история касается и всего написанного в постах выше.
Жаль, но в существующей версии FLPRog, данная оптимизация невозможна, а возможна лишь в конечном коде IDE.
Надеюсь, принципиальных ошибок не много, писал по собственному пониманию, образования по програмированию не имею.
Извиняюсь за многабукав.
Последний раз редактировалось Sancho 18.05.2017{, 09:56}, всего редактировалось 1 раз.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

Вернуться в «Modbus»