Звонил сегодня в пролог,узнать сколько стоит лицензия на modbus чтобы работать с ним штатными инструментами Codesys а не костылями,увы очень дорого по 100 евро за rtu + 100 евро tcp + 50 евро юсб ключ(. Однако если производитель подсуетится он купит OEM за копейки. Уважаемый производитель так как вы заявляете что контроллер модульный и собирается под нужды заказчика сделайте за доп плату лицензии на модбас и web визуализацию.
Объявление
Свернуть
Пока нет объявлений.
Modbus
Свернуть
X
-
Работаю с овен спк и в этом плане всё устраивает но у них нет встроенных входов и выходов ,только по модбас что в некоторых проэктах критично по времени(100мс на считывание входа + 100мс на запись выхода ) из-за этого приходится аппаратно и программно извращаться. Думал что нашел то что надо но нет и тут все неприлично сложно.
-
Сообщение от Иван Посмотреть сообщениеЗвонил сегодня в пролог,узнать сколько стоит лицензия на modbus чтобы работать с ним штатными инструментами Codesys а не костылями,увы очень дорого по 100 евро за rtu + 100 евро tcp + 50 евро юсб ключ(. Однако если производитель подсуетится он купит OEM за копейки. Уважаемый производитель так как вы заявляете что контроллер модульный и собирается под нужды заказчика сделайте за доп плату лицензии на модбас и web визуализацию.
Комментарий
-
Хочу добавить, что наша реализация Modbus ничуть не хуже реализации от 3S, просто она может быть немного непривычна. Более того, библиотека AgavaLinks много удобнее стандартной на проектах средних и больших размеров, так как сплошным текстом набить сотню-другую регистров гораздо быстрее, чем тысячу раз кликать мышкой. Да и в коде обращение к регистру по имени повышает наглядность.
Комментарий
-
Используя Agava Links можно получить очень интересный и неприятный результат.
Программа уходит в исключение на создании списка тегов Unit.FillTagsList();
В случае когда на запись больше 7-значений использующих WriteFunction := 16#10,1 фотография
Комментарий
-
Сообщение от Таушканов Посмотреть сообщениеДа, мы так же столкнулись с таким эффектом. Исправим в ближайшее время и выложим обновленную библиотеку.
Комментарий
-
Вот пример, которым можно протестировать работу на большом количестве тегов.
В архиве есть листинги отдельных дампов для чтения (0x03) 1000 и записи (0x10) 100 holding регистров (программа настраивалась для каждого случая). Не имеет смысла использовать драйвер Links для записи набора регистров, т.к. запись идёт всё равно отдельными запросами по одному регистру. В типовых реальных проектах периодическая запись такого рода не используется. Это сделано умышленно.
Состав архива:
- LinksDynamicTagsTest.project - проект в формате Codesys 3.5.10.40 (работа с симулятором);
- tags.csv - файл списка тегов, который можно загружать динамически при помощи функции LoadTags(), включён в состав проекта;
- Read 1000 HR.html и Write 100 HR.html - дампы обмена между симуляторами Codesys Win PLC и Modbus Slave.
Для использования проекта нужно изменить ПЛК на свой и исправить значения идентификаторов для последовательных портов.
Имейте в виду, что использование библиотеки AgavaModbus требует установки необходимого размера динамической памяти для приложения. Необходимый размер можно установить экспериментальным путём. Если памяти не хватит, то будет исключение. Загружать теги можно только в первом цикле программы. В остальное время изменять размеры динамических списков не рекомендуется.
Будете править исходники - не сломайте то, что работает. Читайте документацию, экспериментируйте с примерами, изучите основы Delphi (работа с указателями).
ПРАВКА: Записывается на самом деле 200 регистров, т.к. все теги имеют тип float. Т.е. запись 100 тегов типа float.Последний раз редактировалось Вячеслав Мезенцев; 15-02-2019, 03:52 PM.
Комментарий
-
Сообщение от Вячеслав Мезенцев Посмотреть сообщениеВот пример, которым можно протестировать работу на большом количестве тегов.
В архиве есть листинги отдельных дампов для чтения (0x03) 1000 и записи (0x10) 100 holding регистров (программа настраивалась для каждого случая). Не имеет смысла использовать драйвер Links для записи набора регистров, т.к. запись идёт всё равно отдельными запросами по одному регистру. В типовых реальных проектах периодическая запись такого рода не используется. Это сделано умышленно.
Состав архива:
- LinksDynamicTagsTest.project - проект в формате Codesys 3.5.10.40 (работа с симулятором);
- tags.csv - файл списка тегов, который можно загружать динамически при помощи функции LoadTags(), включён в состав проекта;
- Read 1000 HR.html и Write 100 HR.html - дампы обмена между симуляторами Codesys Win PLC и Modbus Slave.
Для использования проекта нужно изменить ПЛК на свой и исправить значения идентификаторов для последовательных портов.
Имейте в виду, что использование библиотеки AgavaModbus требует установки необходимого размера динамической памяти для приложения. Необходимый размер можно установить экспериментальным путём. Если памяти не хватит, то будет исключение. Загружать теги можно только в первом цикле программы. В остальное время изменять размеры динамических списков не рекомендуется.
Будете править исходники - не сломайте то, что работает. Читайте документацию, экспериментируйте с примерами, изучите основы Delphi (работа с указателями).1 фотография
Комментарий
-
В формате .projectarchive (файлы этого формата большие для форума): https://yadi.sk/d/9Hlc0vJvDAYTnA
Нельзя совать в библиотеки всё, что суётся. Серым помечаются те из них, которые подключаются "неявно", т.е. при добавлении визуализации или устройств. Вручную их добавлять не следует. Все копии одного и того же нужно удалить. Должна была сработать магическая кнопка "Загрузка отсутствующих библиотек". Если в документации написано, что для сборки библиотек применялся компилятор 3.5.10.x, то зависимости этих библиотек желательно иметь с теми же цифрами.
Проект будет работать в любой версии Codesys 3.5, начиная с 3.5.10.40. Под симулятором понимается не встроенный в среду, а runtime под Windows, который идёт в комплекте (32-разрядная его версия). Работа с ним по последовательному порту требует специальных навыков, поэтому лучше применять реальный ПЛК.1 фотография
Комментарий
-
Сообщение от Petefree Посмотреть сообщениеСпасибо буду ждать.
Вам необходимо увеличить объем выделяемой памяти, например до 20000 байт.
Объем памяти нужно указывать только опытным путем, если памяти не хватит, то снова получите исключение при старте.
Как указать объем выделяемой памяти:
В проекте , правой кнопкой мыши по приложению, далее свойства, далее опции компиляции приложения, указать требуемый объем выделения памяти.
Комментарий
-
Всем доброго дня. Помогите с решением. Приобретен контроллера АГАВА 40, задача стоит следующая: необходимо реализовать модбас мастер, модбас слейв и получение 3х аналоговых сигналов с модуля расширения.
С аналоговыми сигналами все протестировал, подключив библиотеку Agavamodules, все работает.
Но возникла проблема с модбас. Скачал пример реализации модбас с сайта Агава "АГАВА\Codesys_AgavaSDK_20180608\Примеры\AgavaModb us\ПЛК-40\ST\ModbusRTUMaster.project"
Компилируется нормально но как только в данный пример добавляется библиотека Agavamodules тут же возникают проблемы при компиляции модбас.
Подскажите решение, заранее спасибо!1 фотография
Комментарий
-
Сообщение от VBSega Посмотреть сообщениеВсем доброго дня. Помогите с решением. Приобретен контроллера АГАВА 40, задача стоит следующая: необходимо реализовать модбас мастер, модбас слейв и получение 3х аналоговых сигналов с модуля расширения.
С аналоговыми сигналами все протестировал, подключив библиотеку Agavamodules, все работает.
Но возникла проблема с модбас. Скачал пример реализации модбас с сайта Агава "АГАВА\Codesys_AgavaSDK_20180608\Примеры\AgavaModb us\ПЛК-40\ST\ModbusRTUMaster.project"
Компилируется нормально но как только в данный пример добавляется библиотека Agavamodules тут же возникают проблемы при компиляции модбас.
Подскажите решение, заранее спасибо!
var_global constant
READ_COILS : byte := 16#01;
READ_DISCRETE_INPUTS : byte := 16#02;
READ_HOLDING_REGISTERS : byte := 16#03;
READ_INPUT_REGISTERS : byte := 16#04;
WRITE_SINGLE_COIL : byte := 16#05;
WRITE_SINGLE_REGISTER : byte := 16#06;
WRITE_MULTIPLE_COILS : byte := 16#0F;
WRITE_MULTIPLE_REGISTERS : byte := 16#10;
end_var
Комментарий
-
Сообщение от Пушкарев Андрей Посмотреть сообщение
Сообщение от VBSega Посмотреть сообщение
Всем доброго дня. Помогите с решением. Приобретен контроллера АГАВА 40, задача стоит следующая: необходимо реализовать модбас мастер, модбас слейв и получение 3х аналоговых сигналов с модуля расширения.
С аналоговыми сигналами все протестировал, подключив библиотеку Agavamodules, все работает.
Но возникла проблема с модбас. Скачал пример реализации модбас с сайта Агава "АГАВА\Codesys_AgavaSDK_20180608\Примеры\Agava Modb us\ПЛК-40\ST\ModbusRTUMaster.project"
Компилируется нормально но как только в данный пример добавляется библиотека Agavamodules тут же возникают проблемы при компиляции модбас.
Подскажите решение, заранее спасибо!
Добрый день, для решения этой проблемы, необходимо переменные, что вызывают ошибки, определить в проекте, например в разделе var_global constant
var_global constant
READ_COILS : byte := 16#01;
READ_DISCRETE_INPUTS : byte := 16#02;
READ_HOLDING_REGISTERS : byte := 16#03;
READ_INPUT_REGISTERS : byte := 16#04;
WRITE_SINGLE_COIL : byte := 16#05;
WRITE_SINGLE_REGISTER : byte := 16#06;
WRITE_MULTIPLE_COILS : byte := 16#0F;
WRITE_MULTIPLE_REGISTERS : byte := 16#10;
end_var
http://forum.kb-agava.ru/forum/проду...рования
Комментарий
Комментарий