|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.11.2013, 03:05 | #1 |
Регистрация: 21.11.2013
Сообщений: 3
|
Програмирование промышленного контроллера Siemens на языке ассемблер.
Помогите пожалуйста решить два задания.
1)В автоматическом режиме поддерживать температуру в сушильной камере на уровне 255С за счет изменения величины напряжения на регуляторе нагревательного элемента.Дискретность изменения напряжения на регуляторе нагревательного элемента за счет изменения индекса модуляции 2% ШИМ.Изменения импульса модуляции производить каждые 2 секунды. 2)Если измеренная температура в сушильной камере превысила 251С, то установить величину напряжения на регуляторе нагревательного элемента, соответствующую 10% ШИМ, и через 1 секунду выключить нагревательный элемент и включить вентилятор. Пример решения: Задача № 4 Если температура в сушильной камере превысила 64° С, то включить вентилятор. Число 64 в шестнадцатеричной системе счисления выразится как 0040h. Программа MOV R5,#0040h; запись в R5 числа 64 MOV R10,#0005h; занесение номера линии 5 порта Р5 в регистр конфигурации АЦП PUSH RIO; POP ADCON; Q: BSET ADST; включение АЦП W: NOP; JB ADBSY.W; ожидание окончания преобразования PUSH ADD AT; помещение результата в RO POP RO; AND RO,#OFFFh; CMP RO,R5; сравнение температур JMPR CC_ULE,Q; если разность RO-R5 меньше или равна нулю, то перейти по метке BCLR P2.5; занесение нуля в бит 5 порта Р2 (выключить) BSET DP2.5; запись в регистр направления единицы (вывод) Задача № 5 Если температура в покрасочной камере либо превысила верхний допустимый предел, либо стала меньше нижнего допустимого предела, то с промежутком времени в 10 с включить вентилятор. Программа ST: BCLR DP2.2; запись нуля в регистр направления (ввод) BMOV R3.1,P2.2; пересылка содержимого порта Р2.2 в R3.1 BCLR DP2.4; запись нуля в регистр направления (ввод) BMOV R2.2,P2.4; пересылка содержимого порта Р2.4 в R2.2 BOR R3.1 Д2.2; логическое сложение битов регистров R3.1 и R2.2 JMPR CC_Z,ST; условный переход: если результат логического сложения равен нулю, то перейти по метке (повторить контроль) MOV R12,#OOOAh; Расчет кода выдержки времени. Предварительно определяется коэффициент деления из условия При Т=\с условие примет вид fo>308,18. Ближайшее большее значение коэффициента деления равно kf=5l2. Тогда в десятичной системе счисления код выдержки времени будет равен В двоичной системе счисления код выдержки времени примет вид 37768 16384 8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 О 1 1 О О 1 11 01101000 В шестнадцатеричной системе счисления код выдержки времени примет вид Л=6768Ь. Код выдержки времени заносится в один из регистров общего назначения. Регистр общего назначения выбирается произвольно. KL: MOV R7,#6768h; Производится пересылка содержимого R7 в регистр данных через стек. Рабочим таймером выбирается Т2. PUSH R7; POP T2; Заполняются битовые поля регистра управления T2CON в соответствии с выбранным режимом работы таймера, и формируется код, который должен быть занесен в регистр управления. 121—110 - коэффициент деления в делителе частоты 512; Т2М=000 - таймер работает от внутреннего генератора; T2R=1 - таймер включен; T2UD=0, T2UDE=0 - суммирование в счетчике тактовых импульсов; Т2ОЕ=0 - выход переполнения отключен; Т2ОТЪ=0 - счетчик не переполнен. В соответствии с данным режимом работы таймера в регистр управления необходимо записать код в двоичной системе счисления вида 0000000001000110 или в шестнадцатеричной системе счисления 0046h. Код режима работы таймера заносится в регистр управления. MOV T2CON,#0046h; Установка программы на ожидание окончания выдержки времени (появление единицы в T2IR). W: NOP; пустой шаг - некоторая задержка времени в выполнении программы JNB T2IR, W; условный переход: если в T2IR нет единицы, то перейти по метке MOV T2CON,#OOOOh; выключение таймера BCLR T2IR; установка триггера T2IR в ноль SUB R12,#0001h; вычесть из числа 10 единицу JMPR CC_NZ,KL; если не выполнены все 10 циклов, то перейти по метке BCLR P2.5; запись нуля в регистр данных (выключение) BSET DP2.5; запись единицы в регистр направления (вывод) |
21.11.2013, 08:57 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...что за изврат с асмом, LD/FBD/STL уже не в фаворе? Самое близкое к асму - IL, но у вас явно не он.
Вы уверены, что у вас ПЛК Сименс, а не какой-нить AVR микроконтроллер? Модель в тему.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
21.11.2013, 12:06 | #3 |
Регистрация: 21.11.2013
Сообщений: 3
|
В данном случае рассматриваем программу решения промышленных контроллеров модели М-167-1 фирмы SIEMENS на базе микроконтроллера 80С167
|
21.11.2013, 12:15 | #4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
21.11.2013, 12:21 | #5 |
Регистрация: 21.11.2013
Сообщений: 3
|
Да это оно самое, но мне не разобраться никак без вашей помощи.
http://window.edu.ru/resource/024/25...es/nwpi113.pdf Последний раз редактировалось Александр А; 21.11.2013 в 14:26. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать 2 программы на языке ассемблер | starker | Фриланс | 0 | 14.05.2013 18:19 |
Работа на языке Ассемблер | Lizochka) | Помощь студентам | 1 | 12.12.2010 11:34 |
Заданиям на языке Ассемблер (MASM) | dimon305 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 18.05.2010 10:59 |
написать программу на языке ассемблер | Павел89608888633 | Помощь студентам | 2 | 21.04.2010 18:31 |
Модульое програмирование.Паскаль.Ассемблер. | maziLa | Помощь студентам | 1 | 02.12.2009 05:51 |