Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
Так вот, в стандарте не описано и даже нет никакого упоминания о том, как реализуется этот протокол в устройстве. Вся суть стандартных протоколов в том, что стандартизуется внешняя часть, т.е. обмен МЕЖДУ приборами, а не внутренняя реализация, к-я остаётся на совести производителя и может быть ЛЮБОЙ.
Ну почему же? В разделах 4.2 Data Encoding и 4.3 MODBUS Data model документа MODBUS Application Protocol Specification V1.1b как раз и идет речь о представлении данных именно внутри устройства.

Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
Это невозможно технически, т.к. среда разработки CoDeSys не позволяет добавлять и удалять каналы ввода/вывода, а позволяет лишь добавлять/удалять модули. Т.е. В если сделать как Вы предлагаете, то необходимо создать модули 1 регистр, 2 регистра, 3 регистра и т.д. до 127 регистров. Что лишь усложнит и сделает более запутанной работу с протоколом.

Т.е. даже если мне надо опросить 1 регистр, я вынужден вставлять модуль регистра с 127 регистрами? Или см. п.1 Массивы каналов в CoDeSys невозможны
Зачем же так? Можно сделать так же как у Вас есть в настоящий момент. Регистровый модуль только не со строковым массивом, а с массивом из 16 битных переменных. Длина массива может быть определена, исходя из удобства пользования. К примеру, модули с 4, 8 и 16 регистрами за одну транзакцию. Для большинства применений, ИМХО, их будет вполне достаточно.

Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
Почему же? Протокол ModBus позволяет реализовывать свои собственные команды в специально зарезервированной номерной емкости, что мы и сделали по заказу одного из клиентов.
Вы меня немного не поняли, извините меня за косноязычие. Команды 0х70 и 0х71 необходимо убрать из регистровых модулей. А в строковых модулях им самое место. Убирать их "вообще" - не надо.


Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
мы делаем устройство, к-е будет работать с реальными приборами, а не точно соотв. стандарту, т.к. в реальной жизни производители делают все что им пожелается и приходится подстраиваться, иначе такое "соответствующее стандарту" устройство никому не нужно!

К примеру, ответьте мне на такой вопрос, как передать число с плавающей точкой по стандарту ModBus?
Для этого существуют команды 20 (0x14) Read File Record и 21 (0x15) Write File Record, позволяющие группировать данные произвольным образом, правда только регистрами по 16 бит. Для плавающих чисел это несущественно. Можно даже передавать структуры данных, соответствующие "внутренностям" того или иного прибора.


Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
Вот только при попытке подключить к WAGO не их устройство Вы огребете огромные проблемы с его подключением. И все из-за того, что такие "красявости" как в Beckhoff и WAGO возможны только при использовании оборудования, полностью соответствующего стандарту, а зачастую только ограниченного круга моделей и производителей, о которых заложена на заводе информация в ПЛК.
Наша беда в том, что мы (и я в том числе) в погоне за неким пресловутым "универсализмом" выбрасываем из виду одну немаловажную деталь - конечную эксплуатацию. Поэтому, все наши изделия больше похожи на незаконченные радиолюбительские поделки, а не на конкретные девайсы, как это сделано у немцев. Это плохо.
А идея с файлами - описателями устройств, поставляемыми вместе с устройствами (PROFIBUS) не так уж и плоха.

Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
И за "стандартизацию" потребитель должен переплачивать в 3-10 раз.
В России такие вещи недопустимы (если Вы не из Газпрома). Все хотят подешевле, универсальнее, гибче. Что мы и попытались сделать.
Согласен. В настоящий момент для России все это верно. Однако, время идет...
И в данном случае потребитель платит эти деньги за оборудование для того, чтобы не брать на работу достаточно дорогостоящего пром. программиста (для нашего региона не менее 1 к$ в месяц), а обойтись одним технологом, который и так имеет место быть.
В случае гибкости, универсализма и дешивизны сделать это будет практически невозможно.
И кнечные потребители все больше склоняются к тому, что проще заплатить за "железки", чем потом маятся с капризным и амбициозным существом, коим является по сути пром. программист .
И еще. А кто, собственно, мешает Вашей организации сделать что-то похожее на Wago. И даже лучше.
Представьте - голова на основе Modbus на TCP/IP и куча модулей различного назначения, вплоть до полузаказных. В сочетании с чисто сетевым ПЛК с CoDeSys могло бы получиться достаточно красиво и дешево.