Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Использование FLASH памяти ADAM 5510М

 Ответить Ответить
Автор
Сообщение
kot23rus Смотреть выпадающим
Новичок
Новичок


Присоединился: 07 Февраль 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 24
Свойства публикации Свойства публикации   Ответить, цитируя автора - kot23rus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Использование FLASH памяти ADAM 5510М
    Опубликовано: 13 Ноябрь 2009 15:08

Пытался использовать Flash память ПЛК для хранения базовых настроек (коэффициенты калибровки датчиков, режим работы и т.д.), однако что то не работает, на этапе выполнения комманды EraseSector ПЛК уходит в размышления и из него больше не выходит.

Вообще можно как то сохранять/читать данные с использованием энергонезависимой памяти ADAM-а или все же проще и надежнее юзать внешную память (например через ModBUS).

Наверх
vladi33 Смотреть выпадающим
Участник
Участник


Присоединился: 13 Май 2005
Online Status: Offline
Публикации: 61
Свойства публикации Свойства публикации   Ответить, цитируя автора - vladi33 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 12:29
Вызов NMI во время EraseSector() вызывает общий сбой (если WDT заведен перемычкой на NMI)
WDT_clear();    // предотвращение вызова NMI
if(EraseSector(SEG))printf("Ok. ");

или использовать запись в файл (FFS)
FILE *fs;
fs=fopen(FileName,"w+b");
int c=fwrite(record,len,1,fs);
и fread(rec,len,1,fs);
Правда замечаю нестабильность работы с большими файлами (>100k)
Наверх
kot23rus Смотреть выпадающим
Новичок
Новичок


Присоединился: 07 Февраль 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 24
Свойства публикации Свойства публикации   Ответить, цитируя автора - kot23rus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 14:11

Пробывал запустить следующую программу ( в связи с инструкцией и вышеприведенными советами):

#include <5510drv.h>
 unsigned char data[32768];
 int i;
 void main(void)
 {
       WDT_disable();
       adv_printf("erase sector 0x80000L\n");
       WDT_clear();
       if (EraseSector(0x80000L))
   adv_printf("erase succeed\n");
       else
   adv_printf("erase error\n");

       for (i=0;i<32768;i++)
   *(data+i) = 0x55;
       ProgramSector(0x80000, &data);
       for (i=0; i<10;i++)
   adv_printf("read %d\n", read_mem(0x8000,0x0000+i));
 }

 

Программа тупо зависает на команде EraseSector. Может я что то не так делаю?

 

Попытки записи в файл вызвали сообщение об ошибке, Null Pointer

Наверх
vladi33 Смотреть выпадающим
Участник
Участник


Присоединился: 13 Май 2005
Online Status: Offline
Публикации: 61
Свойства публикации Свойства публикации   Ответить, цитируя автора - vladi33 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 14:42
ИМХО все так, может попробовать другое железо, другие версии *.LIB, другую модель памяти.
Наверх
kot23rus Смотреть выпадающим
Новичок
Новичок


Присоединился: 07 Февраль 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 24
Свойства публикации Свойства публикации   Ответить, цитируя автора - kot23rus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 15:04

Блин пробую подключить другую библиотеку, например *L.LIB, ставлю в компиляторе MODEL=LARGE, и он мне выдает дохрена ошибок, может я опять что то не то делаю????

Наверх
kot23rus Смотреть выпадающим
Новичок
Новичок


Присоединился: 07 Февраль 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 24
Свойства публикации Свойства публикации   Ответить, цитируя автора - kot23rus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 15:07

да научился подключать разные модели памяти, результат вообще плачевынй, он уходит в мир иной сразу же после запуска. Видно идею с использованием энергонезависимой памяти придется забыть.

Наверх
vladi33 Смотреть выпадающим
Участник
Участник


Присоединился: 13 Май 2005
Online Status: Offline
Публикации: 61
Свойства публикации Свойства публикации   Ответить, цитируя автора - vladi33 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 15:16
При смене модели памяти в BC необходим Compile\Build All
Я использую Small (UtylityS.lib), Instr Set 80186
Наверх
kot23rus Смотреть выпадающим
Новичок
Новичок


Присоединился: 07 Февраль 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 24
Свойства публикации Свойства публикации   Ответить, цитируя автора - kot23rus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 18 Ноябрь 2009 15:21
Я понимаю что BildAll, я тоже юзаю Small, вроде как все работает, тока вот с Flash ни в какую, думаю бысрей всего с контроллером что-то, но пока проблема наблюдается на двух (остальные еще не пришли еще).
Наверх
Vel_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 25 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 116
Свойства публикации Свойства публикации   Ответить, цитируя автора - Vel_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Ноябрь 2009 07:51
Посмотрите ссылку:
http://forum.cta.ru/forum_posts.asp?TID=1743&PN=2
Vel
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz