Sergey666 Во-первых, нечего пенять на техноблогосферу, коли не читал мой блог. Пишу я там только тогда, когда разберусь. Потому и написал, что ближе к осени. К примеру пост про модули IO от ОВЕНа вынашивался полгода. А статья про Modbus в двух частях (с анализом сигналов осциллографом и логическим анализатором и тем, как работают CodeSys v2 и CodeSys v3) вынашивается уже второй год. Так-то.
Что касается самого "бложока" - дык ему 12ый год идёт. С 2009 года-то. Известный ресурс в узких кругах, между прочим.
Во-вторых, после того как я увидел этот пример на говнокоде (так это называлось во все времена) - без именований переменных, без комментариев и пояснений в логике, меня стошнило.
Так как я прогал на разных языках (QB, VB, VC++, PHP, 1C 7.7, MCS-51, AVR, Pascal/Delphi), то судить право имею: во всех языках (а кое-где даже в командах разработки) есть правила оформления кода, именования переменных (причём с разными нотациями), оформления комментариев и отступов, работы с константами и магическими числами. Вкус к понятному коду у меня привит с 1997 года, ибо нефиг.
И по форуму я вижу, что большинство разрабов под ПЛК делают такую хрень. Открываешь проект, который тебе с пафосом прислали как супер-важный-пример, а там понаписано всякого типа "pr3", "i", "j = pr8 / 10 + i-5", и ты сидишь и офигеваешь.
Или, что ещё хуже нет никаких проверок границ массивов, валидности указателей, длины буферов, логической валидности принятых данных. Это же, чёрт побери, АЗЫ грамотного программирования: сначала проверил все параметры функции (или FB в нашем случае), потом начал действовать или вывалил код ошибки!
И вот эти люди (включая Sergey666) будут мне указывать на бложик и на статьи?... Пха!
Я против этого, и я буду от этого воротить свой нос. И тут меня не перешибёшь ничем: есть понятный код, а есть говнокод.
При том, что есть обратные примеры, и в разделе ПРок чел с аватаром волка ("ты заходи если чё") быстро рисует отличные понятные FBD на OWL.
В-третьих, по поводу "разберусь - напишу статью". А вот тут я и скажу следующее: Валенок вон в третий (или пятый) раз объясняет одно и то же с этими STRING.
Все (как и я сам) спрашивают пример. И где он? Кто-то, включая Валенка самого, подготовил картинки скриншоты, пояснения (то, почему мы так делаем и на каких принципах это построено)? Валенок давал код в теме, которую жахнули... и - всё.
У меня многие проекты делаются с посыла "если никто, то это сделаю я" и "задолбало". Вот и задолбало. Сделаю пост!
В-четвёртых, в DWORD меня тянет, так как в VC++ на 32-битной платформе это 4 байта. И осталась привычка с приведением типов указателей к чему угодно. Что например можно склеить DWORD, а потом взять memcpy какой-нить и хажнуть (void*)&dwVariable в REAL. Про то и спрашивал, как тут в CodeSys делают.
kondor3000 А ты отрицательную температуру потести так. Косяк вылазит на отрицательных.
Вон, если дома разрабатываешь, возьми чего-нить из морозилки и на датчик положи - и зацени что будет.
SBeaR Во, про это и надо будет написать в посте. Что, мол, работает не во всех случаях, и надо смотреть на докуму и на практику.
Хм... про 4ТД интересно. Я нашёл докуму - https://docs.owen.ru/product/moduli_...14#topic-40914 - а там пишут, что якобы он поддерживает команду 0x03 и может отдавать несколько регистров.
А в реале, значит, ни фига. Значит баг =)




Ответить с цитированием
. А вот уже три и более отдавать не хочет.
