Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...что за изврат с асмом, LD/FBD/STL уже не в фаворе? Самое близкое к асму - IL, но у вас явно не он.

Вы уверены, что у вас ПЛК Сименс, а не какой-нить AVR микроконтроллер? Модель в тему.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 21.11.2013, 12:06   #3
Александр А
 
Регистрация: 21.11.2013
Сообщений: 3
По умолчанию

В данном случае рассматриваем программу решения промышленных контроллеров модели М-167-1 фирмы SIEMENS на базе микроконтроллера 80С167
Александр А вне форума Ответить с цитированием
Старый 21.11.2013, 12:15   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

сие http://window.edu.ru/resource/024/25...es/nwpi113.pdf ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 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.
Александр А вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать 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