а записать сколько можно?
Вид для печати
Можно ли настроить Лоджик что бы те макросы что есть на диске компьютера были сразу доступны при открытии нового проекта.
Но они же существуют! Без претензий на совершенство:
Вложение 26427
Если кто захочет в INTе, выкладывал макросы конвертации в специальных макросах: http://www.owen.ru/forum/showthread.php?t=13106&page=3
Подскажите, работаю с математикой и вот с чем столкнулся:
Функция TO_INT откидывает чуток числа)
Вложение 26460
Вложение 26461
Так вот я правильно понимаю, что если число больше 4294967295 (32 разр.), то лишнее откидывается?
И как быть? Хранить в памяти 4294967295, когда вычисляемое выходит за 32 разряда?
В данном случае у Вас числа меньше 2^32, то что выводится перед умножением на 100, скорее всего не равно в точности 5,1E-7, попробуйте вывести на экран эти значения, если у Вас ПР200 и сравните в действительности числа. В режиме симуляции там идет округление и не всегда эти числа равны расчетным.
Здравствуйте!
Может, кто сталкивался с такой проблемой и нашёл пути её решения:
Имеются три тэна которые управляются ПИД регулятором, на который информация поступает от датчика температуры. В зависимости от мощности выдаваемой ПИДом, работают один, два или три тэна. Последний тэн работает только в момент первоначального прогрева, а первые два тэна уже на поддержание заданной температуры. Вот и проблема от сюда вытекает: как уравновесить продолжительности работы каждого тэна отталкиваясь от фактической наработки, а не от календарного времени.
Посмотрите среди макросов были для управления насосами с равномерным временем включения. Его можно применить в данном случае.
Кажется AI делал для 8-ми насосов.
Не нашел в списке макросов, может плохо искал, поэтому прикладываю.
В вашем случае 3 тена, на входе ОК - битовая маска разрешенных устройств, в вашем случае 7 подойдет (всего три тена)
На входе Nm - количество в работе - в вашем случае 2
По фронту происходит переключение, правда если есть некоторая разница в выработке, то есть клацать и видеть результат сразу не получится.
На выходе число, битовая маска которого будет включать устройства.
Ну подхватывать выключенный для прогрева внешней обвязкой.
Почему - то не могу найти :(. Нашел вот такой вариант:http://www.owen.ru/forum/attachment....7&d=1400172860 но он не хочет вставать в ПР200 так как заточен под ПР114 и говорит что не поддерживается:(
Хотя к моей задаче скорее всего подходит лучше. (для моего понимания проще).
Если не поддерживается, то придется копировать из листа в лист из старой программы в новую наверное.
з.ы. я приложил макрос, про который говорил.
Так я и попробовал, открыл свой проект, открыл этот, нажал копировать на макрос, а потом вставить уже в свой проект и мне программа сказала "Компонент RPTU не поддерживается в данном проекте".
Юрий, спасибо за совет.
Так и есть, в симуляции идет нехилое округление, это я знаю.
Меня интересует другое - как одно число до TO_INT превращается в совершенно другое после.
Т.е. было 2,5+10, а стало 3,9+9.
Именно вот это меня смущает. Магия ведь в чистом виде).
Вот это бы понять..
Grog откройте макрос на редактирование, зайдите в него и появится экспорт
Пообщавшись с разработчиками выяснилось, что данный эффект проявляется из-за переполнения, я изначально поторопился с выводами что с числами все нормально, я сравнил Ваше 5.1E9 с 2^32, оно оказалось меньше и я успокоился, но это работает для целых чисел, для float же размерность меньше, из-за отведения разрядов под знак и мантиссу. Вот поэтому и появилась такая "магия".
Макрос ротации оборудования число до трех по времени наработки
http://www.owen.ru/forum/attachment....6&d=1400171574 (это конкретно ссылка на файл)
http://www.owen.ru/forum/showthread....ED%E0%F1%EE%F1 (это страница с которой он взят)
Ну а вы пробовали макрос Ротация8 ?
Там то всего на выходе поставить EXTRACT bit и OR на их выходах для включения 3-его тэна с проверкой по температуре или с таймером для быстрого прогрева.
Вот даже что получилось. I2 - принудительная смена ротации, если необходима, можно не использовать
I3 - включение всех 3-х тэнов для прогрева
I4 - Вкл/выключение нагрева
Мне бы поточнее)
Как в справке.
Типа 32 разряда (4294967295) в вашем распоряжении.
Друзья, поигравшись с калькулятором и блоком TO_INT пришел к выводу, что в свободном доступе 31 разряд.
Т.е. при вводе в блок число более 268435455 оно становится 268435456 и все, далее никак.
Вложение 26482
Поэтому всем кто использует функцию округления нужно будет предусмотреть защиту.
Юрий, не подтвердите мои доводы?