Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.03.2015, 11:15   #1
shev
Новичок
 
Регистрация: Mar 2015
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Question про организацию массива для SMH 2G

Доброго времени суток, форумчане!

вопрос заключается в следующем: есть необходимость примерно раз в секунду обновлять массив с числами, который в последующем используется программно (размерность относительно небольшая - порядка 30 значений). Но (как я понял из мануала к SMH 2G) при использовании блока ARRAY / ARRAYII значения массива при отсутствии доп. модуля памяти (а его как раз нет) записываются в энергонезависимую память. И такие частые перезаписи могут быстро убить память. Конкретно суть вопроса: правильно ли я понимаю особенность работы блока ARRAY? если да (т.е. при каждом обновлении значения массива записываются в ПЗУ), то как решить озвученную проблему силами оперативной памяти без доп. модуля памяти?

p.s. под рукой имеется так же ПЛК SMH 2Gi. Может у него как-то отличаются принципы аппаратного функционирования? из мануала к нему отличий не нашел...

p.p.s. я новичок в сфере программирования на ПЛК, поэтому буду очень признателен подробным ответам)
shev вне форума   Ответить с цитированием
Старый 10.03.2015, 12:14   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: про организацию массива для SMH 2G

Цитата
Сообщение от shev Посмотреть сообщение
вопрос заключается в следующем: есть необходимость примерно раз в секунду обновлять массив с числами, который в последующем используется программно (размерность относительно небольшая - порядка 30 значений).
Каким образом вы планируете обновлять массив? Что за данные в нём содержатся?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 10.03.2015, 14:51   #3
shev
Новичок
 
Регистрация: Mar 2015
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Red face Ответ: про организацию массива для SMH 2G

Цитата:
Сообщение от Arsie Посмотреть сообщение
Каким образом вы планируете обновлять массив? Что за данные в нём содержатся?
Давайте лучше более полно опишу задачу (думаю, что это позволит дать более верный ответ).

имеется датчик влажности, опрос которого ведется через фиксированные промежутки времени (условно - 1 раз в секунду). Далее определяется линейный коэффициент угла наклона прямой изменения влажности: [(значение_новое - значение_предыдущее)/1сек].
после вычисления необходимо записать полученное значение в массив угловых коэффициентов каждого из N последних интервалов. N - постоянно и определяется параметрами объекта управления. Запись происходит по типу стека: на вершину положили новый элемент; элемент, находящийся на дне стека - удалился. (пока наиболее подходит для реализации блок EEPROM).
Далее необходимо вычислить средний коэффициент: среднее арифметическое всех хранящихся элементов.
После чего идет ряд вычислений, которые я уже сам смогу реализовать на блоках. Главный вопрос - получение этого среднего коэффициента.

В конце после ряда вычислений необходимо реализовать управление на основе двухпозиционного реле с гистерезисом (но по-моему нечто похожее я увидел в разделе справки "Построение регуляторов")

p.s. спасибо за ответ!
shev вне форума   Ответить с цитированием
Старый 10.03.2015, 15:28   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: про организацию массива для SMH 2G

Цитата
Сообщение от shev Посмотреть сообщение
Давайте лучше более полно опишу задачу (думаю, что это позволит дать более верный ответ).
Блок Spdelay как нельзя лучше подходит для вашей задачи.

Для получения дискретности в 1 сек при цикле программы в 100 мсек вам нужно на входе dt этого блока задать число 10.

Для реализации формулы Fn = F + Fn-1 / X сделайте обратную связь с предыдущим шагом.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 12.03.2015, 12:02   #5
shev
Новичок
 
Регистрация: Mar 2015
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Thumbs up Ответ: про организацию массива для SMH 2G

СПАСИБО!
все действительно получилось!
shev вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SMH 2G не видит привод belimo по modbus frost SMLogix 15 20.02.2020 16:01
SMH 2G и смс-ки диспетчеру (решено) anonymous Вопросы о SMH-2G 24 29.03.2018 03:05
Связь между Pixel и SMH 2G по modbus OTA Связь с внешним миром 1 07.06.2017 13:11
Есть ли какое-то ограничение для 2G? starmos SMConstructor (теплопункты) 6 19.05.2015 15:10
Использование USB-хаба Varnak Вопросы о SMH-2G(i) 8 01.03.2013 12:20


Часовой пояс GMT +4, время: 20:15.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023