Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Ответ
Опции темы
Непрочитано 02.09.2009, 09:44   #161
kos_ua
Прописка
 
Регистрация: 07.07.2005
Сообщений: 111
Сказал спасибо: 2
Сказали Спасибо 12 раз(а) в 7 сообщении(ях)
kos_ua на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Сообщение от picavr Посмотреть сообщение
Посмотрите почту, написал вам...
Приветсвую...
Почитал я почту....
Могу сказать следующее:
Реализация IO.h файла и есть задача которую каждый пользователь должен решить для себя сам.
Я дал механизм написания программы в графическом виде при этом использовал только один аппаратный таймер для этого. Для обмена данными между пререфирией я создал массивы образов I,Q и массив М для хранения переменных. Массив М загружается в ОЗУ из энергонезависимой памяти и переписывается обратно по прерыванию от пониженного питания....таким образом я добиваюсь хранения переменных во флеш....на самом деле данная методика хранения переменных во флеш не новая и применяется во всех промышленных плк.
Считаю что дальнейшее расширение системы применительно к конкретному железу ложиться на конечного пользователя. Так работает CoDeSys)))).
Вы пишите в своём письме о портах ввода вывода, SPI интерфейсе....всё это относиться к конечному железу(ИМХО).....Думаю что если вы будите мыслить понятиями что весь обмен данными происходит через массивы I,Q,M то увас не возникнит проблем с привязкой программы к железу....
У меня не хватит времени распространить данную систему на большое колличество МК....Однако я могу внести в программу опции выбора МК и подкидывать в зависимости от выбранной опции необходимый IO фаил, а также строку компилятора)
Заранее спасибо.
Реклама:

Последний раз редактировалось kos_ua; 02.09.2009 в 09:47.
kos_ua вне форума   Ответить с цитированием
Непрочитано 03.09.2009, 01:40   #162
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Сообщение от kos_ua Посмотреть сообщение
Думаю что если вы будите мыслить понятиями что весь обмен данными происходит через массивы I,Q,M то увас не возникнит проблем с привязкой программы к железу....
Массив подразумевает линейную адресацию элементов. Адресация портов у AVR или PIC не всегда линейна.

Следуя вашей концепции придётся выделить масив в RAM, и использовать его для хранения содержимого портов, но тогда придётся периодически (скажем 50-100 микросекунд переписывать из RAM в ПОРТЫ и наборот..

У вас порты ввода вывода представлены массивом... Массив это непосредственно порты или промежуточны буфер???

Или я что то не так понял.. поясните плиз.. что я не так вкурил...

Сообщение от kos_ua Посмотреть сообщение
Однако я могу внести в программу опции выбора МК и подкидывать в зависимости от выбранной опции необходимый IO фаил, а также строку компилятора)
Заранее спасибо.
Если не ошибаюсь... в вашей программе в MAIN есть настройка прерываний от таймера, А в разных МК это происходит по разному...

Если сделать так как я предложил.. (через вызовы функций) то программа для всех МК будет одинакова.. (будут вызыватся функции) а в функциях для каждого МК пишется то что нужно... только фал функций для каждого МК.. разный..

если я ошибаюсь... поясните плиз )))))
picavr вне форума   Ответить с цитированием
Непрочитано 03.09.2009, 12:35   #163
kos_ua
Прописка
 
Регистрация: 07.07.2005
Сообщений: 111
Сказал спасибо: 2
Сказали Спасибо 12 раз(а) в 7 сообщении(ях)
kos_ua на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Сообщение от picavr Посмотреть сообщение
Массив подразумевает линейную адресацию элементов. Адресация портов у AVR или PIC не всегда линейна.

Следуя вашей концепции придётся выделить масив в RAM, и использовать его для хранения содержимого портов, но тогда придётся периодически (скажем 50-100 микросекунд переписывать из RAM в ПОРТЫ и наборот..

У вас порты ввода вывода представлены массивом... Массив это непосредственно порты или промежуточны буфер???

Или я что то не так понял.. поясните плиз.. что я не так вкурил...


Если не ошибаюсь... в вашей программе в MAIN есть настройка прерываний от таймера, А в разных МК это происходит по разному...

Если сделать так как я предложил.. (через вызовы функций) то программа для всех МК будет одинакова.. (будут вызыватся функции) а в функциях для каждого МК пишется то что нужно... только фал функций для каждого МК.. разный..

если я ошибаюсь... поясните плиз )))))
I,Q,M это массивы в RAM их не надо куда-то еще переписывать.....Они уже там))).
А вот в файле IO.h их надо аккуратно переложить на железячные порт...и конечно всё зависит от схемы устройства и организации МК.

Далее.....
В main в самом начале вызывается функция initialize_system();
Данная функция опять таки находиться в файле IO.h
В этой функции происходит настройка таймера и его прерывания....следовательно опять таки под железо надо изменять только IO.h
)))
kos_ua вне форума   Ответить с цитированием
Непрочитано 04.09.2009, 03:53   #164
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Сообщение от kos_ua Посмотреть сообщение
В main в самом начале вызывается функция initialize_system();В этой функции происходит настройка таймера и его прерывания....следовательно опять таки под железо надо изменять только IO.h
Cэнк. С этим всё понятно. Нужно было раньше мне заглянуть в файл.
Кстати. я там не увидел где настраивается направление портов?

Сообщение от kos_ua Посмотреть сообщение
I,Q,M это массивы в RAM их не надо куда-то еще переписывать.....Они уже там))).А вот в файле IO.h их надо аккуратно переложить на железячные порт.
Извините за назойливость, хочется таки разобраться. Я так понял основная программа периодически вызывает эти функции
загружает из порта в массив
IO_Input(); // Read Data from all modules
выгружает в порт из массива
IO_Output(); // Write Data to all modules
Если так, тогда с обновлением информации в портах всё ясно.

Кстати. Можно было бы из функции прерывания убрать вызовы требуемых функций. Вызывать оттуда функцию(которую располагать в основном файле) а в этой функции описывать что вызывать. Тогда IO.h не нужно редактировать при изменнениях. Хотя, не много там изменять.
Просто хотелось бы минимизировать грядущие изменения в файлах IO.h Это так сказать мысли по поводу того как бы сделать лучше. Может идея того и не стоит.
примерно так:
в файле Тогда IO.h
void TIMER1_INT(void) interrupt 1
{
rutin_interapt();
}
в основном файле.
void rutin_interapt(void){
MByte++;
if ((MByte & 0x01) && !(pFMByte & 0x01)) Time+=1;
if ((MByte & 0x02) && !(pFMByte & 0x02)) Int_T100ms();
if ((MByte & 0x0 && !(pFMByte & 0x0) Int_T1s();
pFMByte=MByte;}

Высылаю вам два файла IO.h для PIC и AVR. Пока там написал под таймер0 (он обычно 8 битный) и максимальный период при большой частоте может быть менее 50 милисек. В прерывании нужно просто организовать счётчик на 5. Или попозже напишу с таймером1, хотя я бы его ставил для работы с часовым кварцем - RTL.

Хотя я бы сделал главным файлом тот файл, в котором определяется МК. и все настройки проекта. А ваши функции вызывал бы оттуда.
Так при переходе от компилятора к компилятору по моему будет проще. По крайней мере так сложилось у меня. Главные файлы разные, а остальные файлы в проектах для разных компиляторов одинаковые. см почту.

Последний раз редактировалось picavr; 04.09.2009 в 04:08.
picavr вне форума   Ответить с цитированием
Непрочитано 30.10.2009, 13:34   #165
Mixer79
Частый гость
 
Регистрация: 22.08.2007
Сообщений: 43
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Mixer79 на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

как дела в области разработки конечного програминого продукта ?
Mixer79 вне форума   Ответить с цитированием
Непрочитано 04.11.2009, 14:11   #166
kos_ua
Прописка
 
Регистрация: 07.07.2005
Сообщений: 111
Сказал спасибо: 2
Сказали Спасибо 12 раз(а) в 7 сообщении(ях)
kos_ua на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Сообщение от Mixer79 Посмотреть сообщение
как дела в области разработки конечного програминого продукта ?
Привет всем....Работы по созданию ПО были приостановлены в следствии навала основной работы...но не прекращены....
Выкладываю новый софт.
Что тут изменилось:
1 Добавил индикатор.
2. У линии появилось свойство видимости.(необходимо если много линий на схеме чтоб они не пересекались).
3. Переменной можно присвоить символическое имя.
Большинство функций есть на ToolBar
Во вложении есть пример работы с индикатором.(функции DPL_WBUF выводит на индикатор информацию из буфера, осталные функции работы с индикатором формируют исключительно этот буфер)
Вложения:
Тип файла: rar setup.rar (2.13 Мб, 160 просмотров)

Последний раз редактировалось kos_ua; 04.11.2009 в 14:14.
kos_ua вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо kos_ua за это сообщение:
Monyak (03.04.2019), umkamaks (21.12.2010)
Непрочитано 18.01.2010, 22:18   #167
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Готов поддержать проект. Только, мне кажется, всё пошло несколько другим путём.
Предлогаю автору вернуться к техзаданию (как бы). Переосмыслить задачу и основные направления развития. Постараемся чтобы сделанный задел полностью сохранился.

Моё мнение, что надо идти от простого к сложному. Иначе такая тема - неподъёмна. А так мы можем выдать на гора упрощённый вариант, но полностью доведенный. Это даст следующий результат. При приостановке процесса всегда останется рабочий проект пусть и ограниченной функциональности.
SasaVitebsk вне форума   Ответить с цитированием
Непрочитано 20.12.2010, 20:50   #168
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

Может кто-то подскажет основыне принципы обработки программы на ПЛК. В книге Петрова пишется что программа обрабатывается построчно...все бы и понятно было, если бы не параллельные связи...кто разрабатывал ситемное ПО для ПЛК, подскажите, пожалуйста, в каком виде хранится созданная программма на языке релйных схем и как она обрабатывается?
Batisto4ka вне форума   Ответить с цитированием
Непрочитано 20.12.2010, 21:48   #169
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

попробую завтра кусок реальной программы дать для аллен-бредли.
программа хранится в виде выражений интерпретатора с указанием ветвлений, переходов, подпрограмм, циклов.
jump вне форума   Ответить с цитированием
Сказали "Спасибо" jump
Batisto4ka (20.12.2010)
Непрочитано 20.12.2010, 23:22   #170
Batisto4ka
Временная регистрация
 
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
Batisto4ka на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

буду очень благодарна
Batisto4ka вне форума   Ответить с цитированием
Ответ

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Языки программирования IEC-6113-3(FBD, LD, IL и т.) VladG Информация по радиокомпонентам 0 18.08.2009 08:57
Ищу ПЛК (промышленный контроллер) c RS-232 и RS-485... LazarenkoAS2 Делимся опытом 44 19.10.2008 20:27
Графический ЖК индикатор на базе LC7981 Bear-ku Микроконтроллеры, АЦП, память и т.д 1 24.07.2008 08:29
Создаем лабораторный БП с цифровым управлением masterpc Источники питания и свет 60 02.04.2007 06:24
осциллограф на базе ПК SlavaS Измерительное оборудование 61 09.06.2005 20:04


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot