Просмотр полной версии : Цикл программы в ПЛК
Здравствуйте коллеги!!
Подскажите как посмотреть сколько по времени (цикл) будет крутится написанная программа в ПЛК.
Где это можно посмотреть в Codesys 2.3 и 3.5?
Будет ли это видно если запустить эмулятор??
Где это можно посмотреть в Codesys 2.3 и 3.5?
В конфигурации ПЛК добавить модуль Statistics (2.3)
Будет ли это видно если запустить эмулятор??
Нет
В конфигурации ПЛК добавить модуль Statistics (2.3)
Нет
Спасибо))
С 2.3 все понятно))
Фигею тихо. Сутки выяснять как померить время. Руками не ?
Руками, это с секундомером что ли??
Last cycle time in mks в Statistics (2.3) это как понимать?
Я имею ввиду миллисекунда или какая то другая единица измерения времени??
krollcbas
29.11.2017, 21:26
Время цикла считаю обычно сам:
Cycle:=Cycle+1;(*Прибавляет 1 в каждом цикле*)
TON(IN:= NOT TON.Q, PT:=T#1s);(*Делаю короткий импульс через каждую секунду*)
TON1(IN:= NOT TON1.Q, PT:=T#1m);(*Делаю короткий импульс через каждую минуту*)
R_TRIG(CLK:=TON.Q);(*Ловлю передний фронт, после того как досчиталась секунда*)
IF R_TRIG.Q THEN Cycle_M_tmp:=Cycle; Cycle:=0; END_IF;(*Передаю значение сколько насчиталось во временную переменную*)
IF Cycle_M_tmp>0 THEN Cycle_M:00/INT_TO_REAL(Cycle_M_tmp); END_IF;(*Избегая деления на 0, передаю количество миллисекунд в одном цикле на панель*)
Время цикла считаю обычно сам:
Cycle:=Cycle+1;(*Прибавляет 1 в каждом цикле*)
TON(IN:= NOT TON.Q, PT:=T#1s);(*Делаю короткий импульс через каждую секунду*)
TON1(IN:= NOT TON1.Q, PT:=T#1m);(*Делаю короткий импульс через каждую минуту*)
R_TRIG(CLK:=TON.Q);(*Ловлю передний фронт, после того как досчиталась секунда*)
IF R_TRIG.Q THEN Cycle_M_tmp:=Cycle; Cycle:=0; END_IF;(*Передаю значение сколько насчиталось во временную переменную*)
IF Cycle_M_tmp>0 THEN Cycle_M:00/INT_TO_REAL(Cycle_M_tmp); END_IF;(*Избегая деления на 0, передаю количество миллисекунд в одном цикле на панель*)
Однако.... http://www.owen.ru/forum/attachment.php?attachmentid=16915&d=1425224217
Помещаем в начало PLC_PRG
(*Время цикла*)
t1:=TIME();
delta := t1 - prevScanTime;
prevScanTime := t1;
delta - искомое время цикла в мс
А если добавить в конце PLC_PRG
t2:=TIME()-t1;
то в t2 увидим время выполнения самой программы в мс
Last cycle time in mks в Statistics (2.3) это как понимать?
Я имею ввиду миллисекунда или какая то другая единица измерения времени??
Написано же mks
Это какая то другая еденица измерения времени.
Дмитрий Артюховский
30.11.2017, 10:05
циферки конечно хорошо, но представление о мире получается если отсчеты по циклам раскладывать в массив значительной длины а потом смотреть его целиком, также весьма наглядно вывести логическую переменную на вывод, инвертировать ее в каждом цикле и смотреть осциллографом - снимается множество вопросов ))
Алексей Геннадьевич
01.12.2017, 08:48
На вопрос блондинки о способе померить время оборота движка сбежались все автомеханики с округи.
Причем блондинка может быть офигительной художницей/фигуристкой/врачом/... но судя по вопросу - ей ни на кой это время.
Ооочень вкусно.:D
Serjay
1) В конфигурации задач в онлайн-режиме посмотреть что мешает? Вероисповедание или отсутствие ПЛК?
2) Поставить в конфигураторе задач время выполнения цикла в nn мс и не парится.
3) Задачу нужно выполнять не более чем за 0,1 мс? - вам в прямое программирование микроконтроллеров и создание устройства с нуля, скорее всего.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot