Нашел........
Вид для печати
Добрый день!
Пишу программу обработки дискретных и аналоговых сигналов.
В качестве модуля ввода-вывода используется корзина ICP DAS ET-87p8-MTCP (2 модуля аналогового ввода, 4 модуля дискретного ввода и 2 модуля дискретного вывода)
Ситуация следующая:
Настроил между ими связь (сконфигурировал устройство "Ethernet", добавил и сконфигурировал Modbus TCP Master и Modbus TCP Slave). В Modbus TCP Slave сконфигурировал каналы для обращения к каждому модулю ввода-вывода данной корзины (пришлось долго разбираться с адресацией параметров ICP DAS'а), данные выводятся стандартными функциями на чтение/запись. Данные аналоговых модулей выводятся в формате WORD (16 бит).
Вложение 65507
значение 10000 примерно соответствует 27-28 градусам цельсия
Вопрос:
Как перевести данные из формата в WORD в формат REAL? Для примера приведу считываемый аналоговым модулем ввода параметр температуры. Сам параметр выводится в Codesys только в формате dec (в ПО для конфигурирования ICP DAS можно посмотреть эти данные в формате value, dec и hex).
Просмотрел библиотеку OwenCommunication, подходящих блоков не нашел, а стандартные переводы типа WORD_TO_REAL положительного результата не дал.
Вложение 65506
Может я проглядел какой блок, который решит мою проблему, или может быть существует способ из этих 16 бит собрать число типа REAL
Добрый день.
Выложите документацию на ваш модуль аналогового входа, в которой приведена карта регистров.
Приложите скриншоты настроек входов модуля.
у сименса это примерно так делается Вложение 65508
К сожалению, не нашел документацию с описанием карты регистров
Вообще в принципе, большинство документации на ICP DAS (и на корзину ET/87p8-MTCP, и на отдельные модули ввода/вывода) невнятная, большинство информации находил путем экспериментов
В ПО на ICP DAS в секции мапинга прописаны адреса ячеек
Вложение 65511
сначала думал, что адресация параметров для AI имеет вид 3xxxx (как написано синим цветом на скриншоте выше), однако при обращении таким образом не понятно, куда именно он обращается
путем экспериментов пришел к выводу, что адресация, указанная на скриншоте в секции мапинга, точно совпадает с адресом параметра, а к конкретному модулю кодесис обращается сам посредством встроенных функций
Вложение 65512
P.S. Не знаю, почему в скриншоте ПО на ICP DAS не отображаются значения value, но в кодесисе данные отображаются корректно
Тогда проще всего написать в техподдержку ICP DAS и уточнить у них формат хранения аналоговых значений.Цитата:
Вообще в принципе, большинство документации на ICP DAS (и на корзину ET/87p8-MTCP, и на отдельные модули ввода/вывода) невнятная, большинство информации находил путем экспериментов
День добрый.
Подскажите пожалуйста, какой библиотекой из стандартных нужно пользоваться для работы с файлами из нескольких потоков (задач)?
Сейчас использую SysFile, но несмотря на синхронизацию BOLT-ом периодически затирают друг друга записи в файле. Есть подозрение, что после завершения SysFileFlush ещё некоторое время производится запись файла.
Т.е. даже с учётом синхронизации -- будет затирание данных в файле?