![]() |
![]() ![]() |
![]() |
#241 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
А у нас данные хранятся в упакованном формате и поэтому прямой зависимости даже к количеству занимаемой памяти не провести. Одна программа из 1000 блоков занимает один объём памяти, другая - другой, процентов на 30 больше или меньше. Поэтому любые попытки сосчитать объём свободной памяти лишены смысла. И именно поэтому у нас нет индикатора свободной памяти. Пока не нашли способ корректно всё подсчитать.
__________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#242 |
Senior Member
Регистрация: Jun 2007
Сообщения: 1 259
|
![]()
ну все-таки под неё отвотдится како-то определнное место. Я не прошу сказать мне связь между кол-вом блоков и занимаемой памяти. Мне интересно склько её отведено в контроллере.
|
![]() |
![]() |
![]() |
#243 |
Senior Member
Регистрация: Jun 2007
Сообщения: 1 259
|
![]()
Почему вообще спрашиваю... У нас есть задачит автоматизировать сложные системы вентиляции с резервированием , кучей предподогревов и т.д. Использовать для этого контроллер SMH во-первых неудобно, во-вторых программа упралвния не влезет в один кнтроллер, а распределять её между несколькими неудобно. Вопрос стоит о выборе контрорллера. По входам-выходам все понятно, НО я не могу точно знать влезет ли в контроллер моя программа. Как бы не получилось так, что когда дело дойдет до программ - выяснится что в контроллере слишком мало места.
|
![]() |
![]() |
![]() |
#244 |
Senior Member
Регистрация: Jul 2006
Сообщения: 172
|
![]()
Если на SMH отказаться от реализации меню (разветвленное меню с вложениями - как делает конструктор) и т.п., то места (по крайней мере по блокам) будет на 1000-1500 больше для самого алгоритма. Для Меню можна поставить дополнительный контроллер (только для этих целей) и обмениваться данными по сети.
Если опишите, что за установка и основные моменты ее работы, то постараюсь основываясь на своем опыте ответить - влезет или нет. (С невлезанием уже сталкивался, но когда на SMH было памяти в два раза меньше). |
![]() |
![]() |
![]() |
#245 | |
Senior Member
Регистрация: Jan 2006
Сообщения: 173
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#246 | |
Senior Member
Регистрация: Jan 2006
Сообщения: 173
|
![]() Цитата:
![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#247 |
Senior Member
Регистрация: Jun 2007
Сообщения: 1 259
|
![]()
А что тогда предложите в качестве альтернативы?
|
![]() |
![]() |
![]() |
#248 |
Senior Member
Регистрация: Jan 2006
Сообщения: 173
|
![]()
Что-нибудь с Isagraf, CoDeSys или другой развитой средой программирования, позволяющей писать хорошо структурированные модульные программы.
PS: На I8000 со штатным Isagraf'ом тоже можете особо не смотреть, там быстро заканчивается память под программу и глюков хватает. |
![]() |
![]() |
![]() |
#249 |
Senior Member
Регистрация: Jun 2007
Сообщения: 1 259
|
![]()
I8000 мы сразу отмели. А что про WinCon скажете? Или Fastwell?
|
![]() |
![]() |
![]() |
#250 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
В контроллер "влезает" 3000 "условных блоков" (т.е. подавляющее большинство программ упиралось в объём 2800-3200 блоков), максимально достижимое число примерно 5200, минимально, что я знаю - примерно 10-15 (забитые по самые уши блоки Screen(str)).
__________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#251 |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]()
В хелпе для СМЛОДЖИКС, относительно блоков ЕЕПРОМ написано следующее:
"Тип данных - bool, int(2 байта), long(4 байта), real(4 байта)." Это следует понимать, как объём памяти, который занимает в ЕЕПРОМ та или иная переменная? Или как-то иначе? Сомнение вызывает то, что и бул, и инт занимает 2(!!!) байта, а лонг и реал 4(!!!) байта. Мне это совершенно не понятно. Как правильно посчитать максимальный объём для пользовательской еепром? |
![]() |
![]() |
![]() |
#252 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
Для блоков EEPROM объём занимаемой памяти считается "объём записи" * "количество записей" + 2.
Т.е. для EEPROM(real), глубиной 100 записей будет выделено 4*100+2=402 байта. По поводу bool - вижу, в описании действительно возможно двоякое толкование, bool занимает 1 байт. Всё остальное - верно. Что именно вызывает у вас трудности в понимании "long" и "real"? __________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#253 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#254 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#255 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
Куда округляет?
![]() Целые числа и числа с плавающей точной хранятся в настолько разных форматах, что их диапазоны напрямую сравнивать некорректно... В лонге же вы дробные числа не зададите. А в риле дроби отнюдь не из воздуха берутся ![]() __________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#256 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#257 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
Практически во всех компьютерах, начиная с 1987 года, используется именно этот стандарт хранения.
Стандарт подразумевает разную точность хранения, в зависимости от занимаемого объёма памяти, в нашем случае 4 байта, что даёт 6 знаков на мантиссу. __________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#258 | |
Senior Member
Регистрация: Jan 2006
Сообщения: 173
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#259 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#260 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
Хм... За несколько лет выпуска контроллера это первый вопрос по поводу хранения чисел с плавающей точкой
![]() Думаю, это стоит добавить в справку. __________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#261 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#263 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#264 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
|
![]()
Если бы всё зависело от меня и в сутках было примерно 80 часов, то гораздо больше людей было бы довольно нашей продукцией
![]() __________________ Добро всегда побеждает добро. Кто добрый - тот и добро. |
![]() |
![]() |
![]() |
#265 |
Senior Member
Регистрация: Feb 2007
Сообщения: 175
|
![]()
Арсений, я тут никак не могу отправить переменную МОДбаса в Альтивар 21 (командное слово - 16 бит). Конкретно мне нуно передать в контроллер интеггер "50176" ( т.е. НЕХ "С400") , а контроллер пишет какую-то лабуду типа "-15360" на экране и в компе и привод не запускает. Слово состояния тоже как-то наперекосяк с него читает... в чем может быть тут дело ? Очень нуно мне это....
сенькс. ЗЫ: с 31 -м альтиваром дружит и с лектусом ОРС - сервером и в кое-как скаде работает (привод ALTIVAR21 имелся ввиду уже три дня ![]() |
![]() |
![]() |
![]() |
#266 | |
НЕ сотрудник Segnetics
Регистрация: Feb 2006
Адрес: 256
Сообщения: 508
|
![]() Цитата:
![]() ![]() |
|
![]() |
![]() |
![]() |
#267 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 1 343
|
![]()
vladun, считай, интнегр = два байта. старший бит - знак. какие 50176? вот он и вываливает тебе этот бит знаковый. лонгом передавай, либо нужен макрос перекодировщик анинтегра в интегр.
|
![]() |
![]() |
![]() |
#268 |
Senior Member
Регистрация: Feb 2007
Сообщения: 175
|
![]()
Каким "лонгом" коллега, когда Частотник "хавает" только Word-ы?, даже переменная имеет вход "интеггер" как еще я могу его передать ?
|
![]() |
![]() |
![]() |
#269 |
Senior Member
Регистрация: Jan 2006
Сообщения: 173
|
![]()
-15360 == 0xС400
Мы вроде тоже сталкивались с таким отображением вордов в SmLogix, но это совершенно не мешало работе программы. Попробуйде что-ли додсуную симулятор слэйва вместо частотника и посмотреть что реально пишется. |
![]() |
![]() |
![]() |
#270 |
Senior Member
Регистрация: Feb 2007
Сообщения: 175
|
![]()
Вот внизу страницы есть примеры слов управления CMD.
Из скады я отправил такое слово, а вот с контроллера - никак ![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по электро калориферу. | Scorpio | SMConstructor (вентиляция) | 11 | 23.12.2015 17:46 |
Вопросы по 0.80b3 | IgorK22 | SMConstructor (теплопункты) | 16 | 18.04.2014 19:27 |
Вопросы по элементам и экранам-элементам. | Sergey Cherevko | SMArt | 23 | 19.03.2013 18:15 |
Изменение контраста дисплеев в контроллерах SMH-2G/SMH-2Gi | Arsie | Новости | 0 | 16.09.2011 11:16 |