Решил воспользоваться предложенными шаблонами.
Раздал следующие MODBUS адреса:
1 - МВ110-32ДН
2 - МВ110-8АС
3 - МУ110-16Р
4 - МУ110-8И
Скорость 115200
И в итоге получил такой опрос одного цикла по шине:
Код:
15:12:02.155: RX: 01-03-00-64-00-01-C5-D5
15:12:02.160: RX: 01-03-02-00-04-B9-87
15:12:02.176: RX: 01-03-00-63-00-01-74-14
15:12:02.180: RX: 01-03-02-00-00-B8-44
15:12:02.195: RX: 02-03-01-18-00-01-05-C2
15:12:02.241: RX: 02-03-02-F0-0D-79-81
15:12:02.255: RX: 02-03-01-20-00-02-C4-0E
15:12:02.301: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.315: RX: 02-03-01-19-00-01-54-02
15:12:02.361: RX: 02-03-02-F0-0D-79-81
15:12:02.375: RX: 02-03-01-23-00-02-34-0E
15:12:02.421: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.435: RX: 02-03-01-1A-00-01-A4-02
15:12:02.481: RX: 02-03-02-F0-0D-79-81
15:12:02.495: RX: 02-03-01-26-00-02-24-0F
15:12:02.541: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.555: RX: 02-03-01-1B-00-01-F5-C2
15:12:02.601: RX: 02-03-02-F0-0D-79-81
15:12:02.615: RX: 02-03-01-29-00-02-14-0C
15:12:02.661: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.675: RX: 02-03-01-1C-00-01-44-03
15:12:02.721: RX: 02-03-02-F0-0D-79-81
15:12:02.735: RX: 02-03-01-2C-00-02-04-0D
15:12:02.781: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.806: RX: 02-03-01-1D-00-01-15-C3
15:12:02.851: RX: 02-03-02-F0-0D-79-81
15:12:02.865: RX: 02-03-01-2F-00-02-F4-0D
15:12:02.911: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:02.925: RX: 02-03-01-1E-00-01-E5-C3
15:12:02.971: RX: 02-03-02-F0-0D-79-81
15:12:02.985: RX: 02-03-01-32-00-02-64-0B
15:12:03.031: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:03.045: RX: 02-03-01-1F-00-01-B4-03
15:12:03.091: RX: 02-03-02-F0-0D-79-81
15:12:03.105: RX: 02-03-01-35-00-02-D5-CA
15:12:03.151: RX: 02-03-04-FF-FF-FF-FF-C8-A7
15:12:03.168: RX: 03-10-00-00-00-10-20-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-90-A4
15:12:03.180: RX: 03-10-00-00-00-10-C0-27
15:12:03.196: RX: 04-10-00-00-00-01-02-00-00-99-00
15:12:03.200: RX: 04-10-00-00-00-01-01-9C
15:12:03.216: RX: 04-10-00-01-00-01-02-00-00-98-D1
15:12:03.222: RX: 04-10-00-01-00-01-50-5C
15:12:03.236: RX: 04-10-00-02-00-01-02-00-00-98-E2
15:12:03.241: RX: 04-10-00-02-00-01-A0-5C
15:12:03.256: RX: 04-10-00-03-00-01-02-00-00-99-33
15:12:03.267: RX: 04-10-00-03-00-01-F1-9C
15:12:03.276: RX: 04-10-00-04-00-01-02-00-00-98-84
15:12:03.282: RX: 04-10-00-04-00-01-40-5D
15:12:03.296: RX: 04-10-00-05-00-01-02-00-00-99-55
15:12:03.301: RX: 04-10-00-05-00-01-11-9D
15:12:03.315: RX: 04-10-00-06-00-01-02-00-00-99-66
15:12:03.323: RX: 04-10-00-06-00-01-E1-9D
15:12:03.335: RX: 04-10-00-07-00-01-02-00-00-98-B7
15:12:03.342: RX: 04-10-00-07-00-01-B0-5D
Из которого видно следующее:
1. Длительность полного цикла опроса 1.187 сек
2. Не используется групповой опрос рядом стоящих регистров.
Наши среднестатистические объекты имеют примерно такой набор типов сигналов:
1. DI - 100
2. DO - 50
3. AI - 30
4. AO - 4
Если экстраполировать полученные результаты на эти объекты, то время полного цикла опроса будет около 5 - 7 секунд, что категорически неприемлимо.
Можно ли как то оптимизировать опрос модулей ввода/вывода?
Мой проект во вложении.