Показать сообщение отдельно
Старый 24.07.2019, 14:37   #272
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 024
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Небольшие хотелки в SMLogix

Цитата:
Сообщение от RomanIst Посмотреть сообщение
при написании программы я заложил как фундамент задание времени во всех задержках переменной int (макрос ваш заводской). И была уверенность что контроллер потянет цикл 10мс следовательно везде выставил время с учетом данной константы. Но при готовности программы и залитии ее в ПЛК выяснилось что он тянет только 13мс и
поэтому пришлось спокойно с калькулятором сидеть и пересчитовать.
Вот тот самый случай, когда с вашим предложением получится не 13 мс, а 30 мс. Что в ряде случаев сделает задачу невыполнимой из-за слишком медленной работы контроллера.

Сам же корень вашей проблемы хотя бы в том, что все действия, зависимые от времени цикла, нужно рассчитывать в конце. Причина проста: вы не знаете истинного времени цикла. В итоге вы дважды посчитали: в начале реализации, когда время цикла было неизвестным и в конце реализации, когда оно стало известным.


Добавлено через 1 минуту

Цитата:
Сообщение от RomanIst Посмотреть сообщение
Поэтому я предложил Вам сделать данное улучшение, для того чтобы другие не повторяли моих ошибок.
Одни ошибки (сделать работу дважды) заменить на другие, возможно более фатальные.

Я понимаю суть вашего предложения и объяснил его неоднозначность. Да и проблема у вас не в долях. Доли - это лишь способ решить вашу проблему, причём косвенный способ, по которому даже поговорка народная есть. Настоящее решение - это воспитание в себе привычки не делать ту работу, которую невозможно выполнить правильно в настоящий момент времени. Сейчас вы просто посидели с калькулятором, потом в другой задаче может неделя пропасть зря.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием