Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Ключевые слова здесь "зная какой экран открыт,можно посылать нужные данные". В стандартном мастере из конфигурации можно и по команде обмен сделать. Для каждого экрана свой Universal Modbus Device с управлением по команде, с нужными для экрана регистрами, вот и будет "обновлять данные и только те которые нужны"
Последний раз редактировалось petera; 21.11.2014 в 09:48.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
https://www.youtube.com/@%D0%9F%D0%B...BA%D0%BE%D0%B2
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Именно он и тормозит. Чтобы отправить старые значения, нужно обработать отправку всех предыдущих переменных, со всеми вытекающими(см. выше). Это когда еще мастер доберется до состояния кнопки квитирования.
И где здесь противоречие? Это что у Вас сообщения приходят каждые 100 мс?. А так, как я предлагаю, пришло новое сообщение - переписывается весь архив однократно, а дальше ПЛК только читает состояние кнопки квитирования. И так будет до прихода следующего сообщения.
Последний раз редактировалось petera; 21.11.2014 в 10:08.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
https://www.youtube.com/@%D0%9F%D0%B...BA%D0%BE%D0%B2
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Еще вариант - сужаем область обмена
UMD 1. String (сами же юзали). А в него загоняем данные соответственно экрану,by change
UMD 2 чтение экрана, poll time
И команды не нужны.
var
a : struct_a; //вне зависимости от кол-ва нужных данных - проще подогнать размер всех
b : struct_b; //структур под размер str в области обмена. Ненужное забить пустыми полями
..
---------------------------
case СurrentScreen of //сюда читаем номер экрана
..: p := adr(a);
..: p := adr(b);
..:
end_case
sysmemcpy(adr(str),p,размер_блоков_константа); //ессно - всё ровняем и проверяем
PS
Чисто для информации. Для ИП320 - 38400 существенно оптимальней
Согласен.
Я ТС самый простой способ ускорения реакции на кнопки предложу
Дело в том, что если в конфигурации несколько UDM, то мастер обрабатывает по одной переменной из каждого UMD по очереди. Т.е сначала одну переменную из одного UMD, затем одну переменную из второго UMD, опять одну переменную из одного UMD, затем одну переменную из второго UMD и т.д. Если количество переменных в UMD разное, то переменные одного UMD фактически будут опрашиваться чаще. Даже при одинаковом времени Polling time для обоих UMD.
Если среди этих 50 переменных подавляющее большинство записываются в панель (Т.е. при появлении сообщения весь архив переписывается, соответственно большее количество регистров меняется). То достаточно завести второй Universal Modbus Device c предположим 8bit input module, который будет читать из панели состояние кнопок и оставить все остальные регистры в первом UMD.
Теперь даже для режима работы By poll time должно быть существенное ускорение реакции на нажатие кнопок.
Запись первой переменной
Чтение состояния кнопок
Запись второй переменной
Чтение состояния кнопок
Запись третей переменной
Чтение состояния кнопок
...................................
Запись n-ой переменной
Чтение состояния кнопок
Затем сначала, в той же последовательности.
Последний раз редактировалось petera; 21.11.2014 в 12:33.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
https://www.youtube.com/@%D0%9F%D0%B...BA%D0%BE%D0%B2
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Переписал проект. ИП-320 - мастер плк-100 слейв. Все "полетело".
Добрый вечер или день. Не подскажете ссылку, где почитать теорию, чтобы понять суть подключения к ПЛК других устройств, в частности инд. панели, а то я в этом деле начинающий. Написал первую прогу на ld с таймерами - не будешь же каждый раз тащить ПЛК к компу, чтобы изменить уставки таймера. Вот и решил прицепить что-то типа ип-320, но как это сделать нет малейшего понятия. Спасибо.
Смотреть примеры http://www.owen.ru/forum/showthread.php?t=13581
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
https://www.youtube.com/@%D0%9F%D0%B...BA%D0%BE%D0%B2
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg