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

Программирование ADAM 5511

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


Присоединился: 08 Январь 2008
Online Status: Offline
Публикации: 15
Свойства публикации Свойства публикации   Ответить, цитируя автора - AMD80 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Программирование ADAM 5511
    Опубликовано: 08 Январь 2008 17:04

Доброго дня суток!!!

Немного о себе -  всю жизнь занимался разработкой баз данных. На прошлой неделе впервые увидел ADAM – 5511.  Вообщем скачал ТС 3.0 и пробую хоть что-то сделать.

Элементарное

#include<conio.h>

#include<5511drv.h>

void main()

{

 adamdelay(100);

}

Не работает…  Все прописал  правильно. (*.lib и *.h). Пишет Undefined symbol _adamdelay in module…..

Если у кого есть время, может в двух словах рассказать что я не так делаю. Заранее спасибо.

Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Январь 2008 06:16
Не знаю как в TC 3.0, а в Borland C++ 3.1 при работе с заголовочниками ICP DAS и компиляции проекта в C++ аналогичная фигня возникала. Лечится использованием следующей конструкции в фирменном заголовочнике:

#ifdef __cplusplus
extern "C" {
#endif

// здесь исходный текст *.h - файла

#ifdef __cplusplus
}
#endif

На счет __cplusplus в применении к ТС 3 не уверен, посмотрите с какими define-ами компилируется ваша прога.

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


Присоединился: 08 Январь 2008
Online Status: Offline
Публикации: 15
Свойства публикации Свойства публикации   Ответить, цитируя автора - AMD80 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Январь 2008 11:15

MuadDib

спасибо за ответ. Все сделал - но не идет. И пробовал на разных компиляторах и  как С++, и как С.  Очевидно что-то не так делаю.

 

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


Присоединился: 08 Январь 2008
Online Status: Offline
Публикации: 15
Свойства публикации Свойства публикации   Ответить, цитируя автора - AMD80 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Январь 2008 14:35

Я хоть правильно сделал?

 

#include <io.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
/////////////////////////////////
#ifdef __cplusplus
extern "C" {
#endif
/////////////////////////////////
/*--1998-11-2-add comm.c function declaration------*/
/*-- 1998-11-2 add BOOL ProgramSector( unsigned long ulAddress, Byte far * SECTOR_DATA) */
/*------------------------------*/
//#define TRUE  0x01
//#define FALSE  0x00

/* ------------------------------------------------------------------ */
/*  Module Variables Definitions          */
/* ------------------------------------------------------------------ */
#define ABit  0x00
#define AByte  0x01
#define AWord  0x02

/* ------------------------------------------------------------------ */
/*  Module ID number Definitions          */
/* ------------------------------------------------------------------ */
#define ADAM5017_ID  0x04
#define ADAM5018_ID  0x05

.............................................................................

...............................................................................

void Get4053(int ID, void *pValue, int Bit, int Size);
char Get4080(int ID,int Channel,unsigned long *pValue);
char Clear_4080_Counter(int ID,int Channel);
char Start_Stop_4080_Counter(int ID, int Channel, int StartOrStop);
/////////////////////////////////

#ifdef __cplusplus
}
#endif
/////////////////////////////////

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


Присоединился: 08 Январь 2008
Online Status: Offline
Публикации: 15
Свойства публикации Свойства публикации   Ответить, цитируя автора - AMD80 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Январь 2008 15:11

Буду очень признателен, если кто скинет нормальный (рабочий) компилятор. pdg80@yandex.ru

Заранее благодарю.

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


Присоединился: 08 Январь 2008
Online Status: Offline
Публикации: 15
Свойства публикации Свойства публикации   Ответить, цитируя автора - AMD80 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Январь 2008 11:34

Тема закрыта.

Большое спасибо MuadDib, за участие в решении моей проблемы.

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


Присоединился: 23 Январь 2008
Online Status: Offline
Публикации: 1
Свойства публикации Свойства публикации   Ответить, цитируя автора - helen-k27 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Январь 2008 11:10

Здравствуйте. А можно и мне вопросик? Подключила такую схему КОМП-> АДАМ-4520 -> ADAM-5511 -> АДАМ-4520 -> ADAM-4051 (или ADAM – 4017+) типа схемы 5-32 в мануале.

 

1.       Функции InitADAM4051 нет. Правильно ли пользоваться InitADAM4050?

2.       Если можно – может кто кинуть код как достучаться до ADAM-4051 (или ADAM – 4017+). Ну там считать состояния канала или выставить. У меня чето не получается. Даже перебирая таким образом возвращает нули.

 

#include <stdio.h>

#include <stdlib.h>

#include <dos.h>

#include <conio.h>

#include<5511drv.h>

#define TRUE      1

#define FALSE     0

void main()

{

unsigned int *data0,*data1,*data2,i=0;

ADAM_BaudRate_Setup((unsigned long)9600);

while(i<=32)

{

i++;

InitADAM4017(i, FALSE);

Get4017(i, 0, data0);

Get4017(i, 1, data1);

Get4017(i, 2, data2);

printf("\nAdam-4017 channel0= %d ", *data0);

printf("\nAdam-4017 channel1= %d ", *data1);

printf("\nAdam-4017 channel2= %d ", *data2);

printf("-------------------");

}

}

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

Присоединился: 04 Март 2008
Online Status: Offline
Публикации: 3
Свойства публикации Свойства публикации   Ответить, цитируя автора - meatzam Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 04 Март 2008 06:57

Здраствуйте!

Возможно, это будет не в тему, но у меня при программировании ADAM 5511 (в составе Demo box) произошла ошибка и теперь контроллер не виден не в ДОС и Windows, а при включении горят и не гаснут PWR, COMM, RUN. читал, что это лечится перепрошивкой из ДОС-утилиты, но не могу ее нигде скачать. Просьба сбрсить ее мне по адресу meatzicq@mail.ru

буду очень признателен

Наверх
 Ответить Ответить

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

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