Скорость обновления данных по COM порту (тест, видео)
Добавлено: 09 фев 2022, 13:27
Часто задают вопросы о скоростных характеристиках панелей Weintek. Особенно интересуются скоростью передачи по последовательному интерфейсу (COM порт, RS-232, RS-485). Как быстро меняется информация на экране панели ?
Чтобы внести хоть какую-то практическую ясность в этот вопрос мы собрали стенд из двух панелей: одна (cMT3092X) является Modbus slave (макросом циклично каждые 100 мс генерируются значения для 100 word переменных и 100 bool переменных), вторая (MT8071iE) - Modbus master .
Связь по RS-485 2W, кабель длиной 50 см.
В эксперименте в Runtime меняем скорости COM портов от 18.5k до 9600.
Видеозапись производили двумя способами - камерой смартфона "живых панелей" и запись экрана ПК (cMTViewer, VNC клиент).
Экран cMT3092X
Экран MT8071iE
Текст макроса:
Чтобы внести хоть какую-то практическую ясность в этот вопрос мы собрали стенд из двух панелей: одна (cMT3092X) является Modbus slave (макросом циклично каждые 100 мс генерируются значения для 100 word переменных и 100 bool переменных), вторая (MT8071iE) - Modbus master .
Связь по RS-485 2W, кабель длиной 50 см.
В эксперименте в Runtime меняем скорости COM портов от 18.5k до 9600.
Видеозапись производили двумя способами - камерой смартфона "живых панелей" и запись экрана ПК (cMTViewer, VNC клиент).
Экран cMT3092X
Экран MT8071iE
Текст макроса:
- Код: Выделить всё
- unsigned short counter = 1
unsigned short arr_word[100]
bool arr_bit[100]
unsigned short i = 0
GetData(counter, "Local HMI", LW, 0, 1)
if counter > 100 then
counter = 1
else
counter = counter + 1 // накручиваем счетчик запусков макроса
end if
SetData(counter, "Local HMI", LW, 0, 1)
FILL(arr_word[0], 0x0, 100)
for i = 0 to 99
arr_word[i] = counter +i
next i
//arr_word[counter] = 100-counter
SetData(arr_word[0], "Local HMI", LW, 1, 100)
// --- массив бит ---
FILL(arr_bit[0], 0x0, 100)
arr_bit[counter] = true
SetData(arr_bit[0], "Local HMI", LB, 1, 100)