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

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

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

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

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

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

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

 
Опции темы

Создаем ПЛК на базе IEC 61131

Непрочитано 02.09.2009, 09:44  
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  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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  
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  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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  
Mixer79
Частый гость
 
Регистрация: 22.08.2007
Сообщений: 43
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Mixer79 на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

как дела в области разработки конечного програминого продукта ?
Mixer79 вне форума  
Непрочитано 04.11.2009, 14:11  
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  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: Создаем ПЛК на базе IEC 61131

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

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

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

попробую завтра кусок реальной программы дать для аллен-бредли.
программа хранится в виде выражений интерпретатора с указанием ветвлений, переходов, подпрограмм, циклов.
jump вне форума  
Сказали "Спасибо" jump
Batisto4ka (20.12.2010)
Непрочитано 20.12.2010, 23:22  
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, время: 10:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.