
- •4.По наличию сигналов с двух датчиков организовать поочередное включение двух ламп с периодичностью 5 с. Составьте электрическую схему, таблицу символов и программу.
- •5.Контролируется сигнал 5 датчиов. При срабатывании любых трех из них включить на выходе лампу на 5 минут. Составьте электрическую схему, таблицу символов и программу.
- •6.При наличии с трех входных дискретных датчиков сигналов в течении 5 с включить на выходе реле на 24 в. Составьте электрическую схему, таблицу символов и программу.
- •11.Сложить три входных аналоговых сигнала, сравнить с четвертым и если сумма больше зажечь на выходе лампу. Составьте электрическую схему, таблицу символов и программу.
- •12.13.С помощью функционального блока реалзовать чтение и нормирование сигналов двух аналоговых датчиков температуры. Составьте электрическую схему, таблицу символов и программу.
- •27.Если читаемое с порта а больше шеснадцатиричного кода еАh зажечь все светодиоды с четными номерами, подключенных к порту с. Составьте электрическую схему, таблицу символов и программу.
11.Сложить три входных аналоговых сигнала, сравнить с четвертым и если сумма больше зажечь на выходе лампу. Составьте электрическую схему, таблицу символов и программу.
D1 – PIW272 – INT
D2 – PIW274 – INT
D3 – PIW 276 – INT
D4 – PIW278 – INT
XIZ1 – MD20 – REAL
XIZ2 - MD24- REAL
XIZ3 – MD28 – REAL
XIZ4 – MD32 – REAL
XF1 – MD36 – REAL
XF2 – MD40 – REAL
XF3 – MD44 – REAL
XF4 - MD48 – REAL
LAMPA-Q 0.0 – BOOL
FC1
IN: XIZ – REAL
XIZ_MAX-
XIZ_MIN-
XF_MAX-
XF_MIN-
OUT: XF- REAL
L # XIZ
L # XIZ_MIN
-R
T LD40
L # XF_MAX
L #XF_MIN
-R
T LD48
L LD48
L LD44
/R
T LD52
L LD40
L LD52
*R
T LD56
L LD56
L #XF_MIN
+R
T #XF
1)CALL “SCALE”
IN:=D1
HI_LIM:=10.0
LO_LIM:=0.0
BIPOLAR:=FALSE
RET_VAL:=MW10
OUT:=” XIZ1”
CALL FC1
XIZ:= XIZ1
XIZ_MAX:=10.0
XIZ_MIN:=0.0
XF_MAX:=200.0
XF_MIN:=0.0
XF:=XF1
2)CALL “SCALE”
IN:=D2
HI_LIM:=10.0
LO_LIM:=0.0
BIPOLAR:=FALSE
RET_VAL:=MW12
OUT:= XIZ2
CALL FC1
XIZ:= XIZ2
XIZ_MAX:=10.0
XIZ_MIN:=0.0
XF_MAX:=200.0
XF_MIN:=0.0
XF:=XF2
3) CALL “SCALE”
IN:=D3
HI_LIM:=10.0
LO_LIM:=0.0
BIPOLAR:=FALSE
RET_VAL:=MW14
OUT:= XIZ3
CALL FC1
XIZ:= XIZ3
XIZ_MAX:=10.0
XIZ_MIN:=0.0
XF_MAX:=200.0
XF_MIN:=0.0
XF:=XF3
4)CALL “SCALE”
IN:=D4
HI_LIM:=10.0
LO_LIM:=0.0
BIPOLAR:=FALSE
RET_VAL:=MW16
OUT:= XIZ4
CALL FC1
XIZ:= XIZ4
XIZ_MAX:=10.0
XIZ_MIN:=0.0
XF_MAX:=200.0
XF_MIN:=0.0
XF:=XF4
5)L XF1
L XF2
+R
T MD42
L MD42
L XF3
+R
T MD46
L MD46
L XF4
>R
S LAMPA
L MD46
L XF4
<R
R LAMPA
12.13.С помощью функционального блока реалзовать чтение и нормирование сигналов двух аналоговых датчиков температуры. Составьте электрическую схему, таблицу символов и программу.
D1-PIW272-INT
D2-PIW274-INT
XIZ1-MD20-REAL
XIZ2-MD24-REAL
XF1-MD28-REAL
XF2-MD32-REAL
FC1
IN: XIZ – REAL
XIZ_MAX- REAL
XIZ_MIN- REAL
XF_MAX- REAL
XF_MIN- REAL
OUT: XF- REAL
L # XIZ
L # XIZ_MIN
-R
T LD36
L # XIZ_MAX
L #XIZ_MIN
-R
T LD40
L # XF_MAX
L #XF_MIN
-R
T LD44
L LD44
L LD40
/R
T LD48
L LD36
L LD48
*R
T LD52
L LD52
L #XF_MIN
+R
T #XF
OB1
CALL ”SCALE”
IN:=D1
HI_LIM:=10.0
LO_LIM:=0.0
BIPOLAR:=FALSE
RET_VAL:=MW58
OUT:=XIZ2
CALL FC1
XIZ:=XIZ2
XIZ_MAX:=10.0
XIZ_MIN:=0.0
XF_MAX:=150.0
XF_MIN:=0.0
XF:=XF2
14.По кнопке организовать движение цилиндра от одного датчика до другого. Вести подсчет ходов цилинда и контролировать это количество в таблице переменных. Составьте электрическую схему, таблицу символов и программу.
D1 – I0.1 – BOOL
D2 – I0.2 – BOOL
C1 – C1 – COUNTER
C2 – C2 – COUNTER
Цилиндр – Q0.0 – BOOL
1) A PUSK
S Tsilindr
FR C1
L C#0
S C1
FR C2
L C#0
S C2
2) A PUSK
A D1
CU C1
3) A PUSK
A D2
CU C2
4)AN PUSK
R Tsilindr
R C1
R C2
15.Написать программу реализации следующей функции: А =B/D+R-Q*C/M. Если все входные данные читаются с периферийных аналоговых входов по адресам от 272 и далее. Составьте электрическую схему, таблицу символов и программу.
B – PIW272 – INT B – PIW272 – INT
D – PIW274 – INT
C – PIW276 – INT
M – PIW278 – INT
R – PIW280 – INT
Q – PIW282 – INT
A – PIW284 – INT
FC1
IN: VHOD – REAL
OUT: VIHOD – REAL
CALL SCALE
IN: = # VHOD
HI_LIM: = 10.0
LO_LIM: = 0.0
RET_VAL: = LW20
BIPOLAR: = FALSE
OUT: = # VIHOD
OB1
1)CALL FC1
VHOD: =B
VIHOD: =MD24
2) CALL FC1
VHOD: =D
VIHOD: =MD28
3) CALL FC1
VHOD: =R
VIHOD: =MD32
4) CALL FC1
VHOD: =Q
VIHOD: =MD36
5) CALL FC1
VHOD: =C
VIHOD: =MD40
6) CALL FC1
VHOD: =M
VIHOD: =MD44
7) L MD24
L MD28
/ R
T MD48
8) L MD48
L MD32
+ R
T MD52
9) L MD36
L MD40
* R
T MD56
10) L MD56
L MD44
/ R
T MD60
11) L MD52
L MD60
- R
T MD64
6.1) CALL FC1
VHOD: =A
VIHOD: =MD64
16.Пневматический цилиндр А зажимает деталь, цилиндр В наносит тиснение и приходит в исходное состояние, только когда цилиндр А опускает деталь. Составьте электрическую схему, таблицу символов и программу.
PUSK – I0.0 – BOOL
D1 – I0.1 – BOOL
Tsilindor A –q0.0-BOOL
Tsilindor B – 00.1-BOOL
A PUSK
S Tsilindor A
S Tsilindor B
A PUSK
A D1
R Tsilindor A
R Tsilindor B
AN PUSK
R Tsilindor A
R Tsilindor B
17.Организовать функцию R=(A+B)/D-C, где A,B,C,D, формальные параметры задаются из SCADA системы. Функция запускается внешним дискретным сигналом. Результат получить в виде вещественного числа. Составьте электрическую схему, таблицу символов и программу.
A – MD20- REAL
B – MD24 – REAL
C – MD28 – REAL
D – MD32 – REAL
R – MD36 – REAL
Pusk – I0.0 – BOOL
A Pusk
L A
L B
+ R
T MD40
L MD40
< D
/ R
T MD44
L MD44
L C
- R
T R
18.Организовать автоматическое движение и подсчет движений двух асинхронно работающих цилиндров А и В. Количество движений цилиндра выводить в таблицу переменных. Составьте электрическую схему, таблицу символов и программу.
Имя |
Адрес |
Тип |
Описание |
Пуск |
I 0.0 |
BOOL |
Кнопка Пуск |
Стоп |
I 0.1 |
BOOL |
Кнопка Стоп |
ДН |
I 0.2 |
BOOL |
Датчик нач-го пол А |
ДК |
I 0.3 |
BOOL |
Датчик кон-го пол А |
СА |
Q 0.0 |
BOOL |
Катушка упр А |
СВ |
Q 0.1 |
BOOL |
Катушка упр В |
Счетчик |
C1 |
COUNTER |
Счетчик |
Программа
А ”Пуск”
А ”ДН”
S ”CA”
R ”CB”
А ”ДК”
S ”CВ”
R ”CА”
CU C1
А ”Стоп”
R ”СA”
R ”СВ”
LC C1
T MW20
19.Организовать чтение и нормирование сигналов трех датчиков положения, измеряющих значение в вольтах. Использовать функциональный блок. Составьте электрическую схему, таблицу символов и программу.
D1 – PIW272 – INT
D2 – PIW274
D3 – PIW276
XIZ1 – MD10 – REAL
XIZ2 – MD14
XIZ3 – MD18
XF1 – MD22
XF2 – MD26
XF3 – MD30
FC1
IN: XIZ1– REAL
XIZ2 – max
XIZ3 – min
XF1 – max
XF2 – min
OUT: XF3 –REAL
L #XIZ
L #XIZ_min
- R
T LD34
L #XIZ_max
L #XIZ_min
- R
T LD38
L XF_max
L XF_min
- R
T LD42
L LD38
L LD42
/ R
T LD46
L LD34
L LD46
* R
T LD50
L LD50
L #XF_min
+ R
T #XF
OB1:
CALL: ”SCALE”
IN: = D1
HI_LIM = 10.0
LO_LIM = 0.0
BIPOLAR: FALSE
RET_VAL: = MW54
OUT: = XIZ1
CALL FC1:
XIZ: = XIZ1
XIZ_max = 10.0
XIZ_min = 0.0
XF_max = 1.0
XF_min = 0.0
XF = XF1
CALL: ”SCALE”
IN: = D2
HI_LIM: = 10.0
LO_LIM: = 0.0
BIPOLAR: = FALSE
RET_VAL: = MW56
OUT: = XIZ2
CALL FC1
XIZ: = XIZ2
XIZ_max = 10.0
XIZ_min = 0.0
XF_max = 1.0
XF_min = 0.0
CALL: ”SCALE”
IN: = D3
HI_LIM: = 10.0
LO_LIM: = 0.0
BIPOLAR: = FALSE
RET_VAL: = MW60
OUT: = XIZ3
CALL FC1
XIZ: = XIZ3
XIZ_max = 10.0
XIZ_min = 0.0
XF_max = 1.0
XF_min = 0.0
XF: = XF3
20.С помощью функционального блока организовать подсчет количества срабатываний датчиков на пути движения конвейера подачи деталей. Количество датчиков 5. Отобразить количество срабатываний каждого датчика. Составьте электрическую схему, таблицу символов и программу.
D1 – I0.0 - BOOL
D2 – I0.1 - BOOL
D3 – I0.2 - BOOL
D4 – I0.3 - BOOL
D5 – I0.4 - BOOL
Pusk – I0.5
Конвейер - Q0.0
C1
C2
C3
C4
C5
FB1:
IN:
D1 – I0.0 - BOOL
D2 – I0.1 - BOOL
D3 – I0.2 - BOOL
D4 – I0.3 - BOOL
D5 – I0.4 - BOOL
OUT:
C1 – 2.0
C2 – 4.0
C3 – 6.0
C4 – 8.0
C5 – 10.0
A Pusk
A D1
FR #C1
L C#0
S #C1
A Pusk
A D2
FR #C2
L C#0
S #C2
A Pusk
A D3
FR #C3
L C#0
S #C3
A Pusk
A D4
FR #C4
L C#0
S #C4
A Pusk
A D5
FR #C5
L C#0
S #C5
AN Pusk
R #C1
R #C2
R #C3
R #C4
R #C5
OB1:
A Pusk
= конвейер
CALL FB1,DB1
D1:= D1
D2:= D2
D3:= D3
D4:= D4
D5:= D5
C1:=C1
C2:=C2
C3:=C3
C4:=C4
C5:=C5
21.Если подключенные к порту А микроконтроллера дискретные датчики сработали одновременно, определить маскированием эту ситуацию и выведите в порт С сигнализацию. Составьте электрическую схему, таблицу символов и программу.
include <p16F877.inc>
R1 EQU h’20’
org 0x000
nop
nop
nop
org 05h
START;
CLRF STATUS;
BSF STATUS, RP0;
CLRF TRISC;
CLRF STATUS;
METKA:
CLRF PORTC;
MOVF PORTA
MOVWF R1
MOVLW B ’11111111’
XORWF R1,0;
BTFSS STATUS, Z;
GOTO METKA;
MOVWF PORTC
GOTO $;
END
22.К порту Д подключены 8 дискретных датчиков. Если сработали подключенные к четырем старшим разрядам датчики, определите маскированием эту ситуацию, и включите светодиод в нулевом канале порта С. Составьте электрическую схему, таблицу символов и программу.
include <PIC16F877.inc>
R1 EQU h’20’
nop
nop
nop
org 05h
START
CLRF STATUS; Выбор 0 банка RP1=0 и RP0=0
BSF STATUS, RP0; Выбор 1 банка сделает RP0=1, т.к. используемый далее TRISA находиться в 1 банке
MOVLW ‘11111111’; Устанавливаем 8 разрядов на ввод (1) записать в аккумулятор W
MOVWF TRISD; Устанавливаем порт D на ввод
CLRF TRISC; Устанавливаем порт С на вывод
CLRF STATUS; выбираем 0 банк
MOVLW ‘Датчики’; информация от датчиков
MOVWF ‘R1’; записываем в R1
MOVLW ‘11110000’; Маска
XORWF R1, 1; Исключающее ИЛИ, проверяем равенство маски и информации с датчиков
MOVLW ‘01000000’; Записываем число в W
BTFSC STATUS, Z; Проверка Z, если Z=0 пропускаем след. команду
MOVLW ‘10000000’; Записываем число в W
WOVWF PORTC; Выводим на порт С содержимое W
END
Таблица символов
Датчики – информация получаемая с 8 датчиков порта D
R1 EQU h’20’ – регистр для хранения данных
23.Если двоичное значение информации восьми дискретных датчиков подключенных к порту А превосходит двоичное значение информации с порта В, зажечь нечетные номера светодиодов подключенных к порту С. В противном случае зажечь светодиоды с четными номерами. Составьте электрическую схему, таблицу символов и программу.
include <PIC16F877.inc>
R1 EQU H ‘20’; адрес двоичного знач. 8 датчиков подключенных к порту А
R2 EQU H ‘21’; адрес двоичного знач. 8 датчиков подключенных к порту В
MIN EQU H ‘32’; адрес минимального значения
nop
nop
nop
org 05h
START
CLRF STATUS
BSF STATUS, RP0
MOVLW ‘11111111’
MOVWF TRISA
MOVWF TRISB
CLRF TRISC
CLRF STATUS
MOVLW ‘Число 1’; информация с порта А
MOVWF R1
MOVWF MIN
MOVLW ‘Число 2’; информация с порта В
MOVWF R2
SUBWF MIN, 1; MIN=MIN-W=R1-R2
MOWLW ‘01010101’; Записываем число в W
BTFSS STATUS, C; если C=1 (R1>R2) то пропускаем след. действие
MOWLW ’10101010’; Записываем число в W
MOVWF PORTC; выводим содержимое W на светодиоды порта С
END
Таблица данных
Число 1 – двоичная информация с 8 дискретных датчиков порта А
Число 2 – двоичная информация с 8 дискретных датчиков порта В
24.На входе микроконтроллера подключена клавиатура из 4-х клавиш. На выходе подключены светодиоды. При нажатии соответствующей клавиши на выходе загорается соответствующая номеру клавиши светодиод. Составьте электрическую схему, таблицу символов и программу.
include <p16F877.inc>
org 0x000
nop
nop
nop
org 05h
START;
CLRF STATUS;
BSF STATUS, RP0;
MOVLW B’00001111’ ; Число для ;инициализации порта D.
MOVWF TRISD ; ввод, CLRF TRISC;
CLRF STATUS;
CLRF PORTC;
CLRF PORTD;
MOVLW B’11110000’
MOVWF PORTD;
NACHALO:
BTFSS PORTD, 0;
GOTO NEXT1
MOVLW B’00000001’ ;
MOVWF PORTC ;
NEXT1:
BTFSS PORTD, 1;
GOTO NEXT2
MOVLW B’00000010’ ;
MOVWF PORTC ;
NEXT2:
BTFSS PORTD, 2;
GOTO NEXT3
MOVLW B’00000100’ ;
MOVWF PORTC ;
NEXT3:
BTFSS PORTD, 3;
GOTO NEXT4
MOVLW B’00001000’ ;
MOVWF PORTC ;
NEXT4:
GOTO NACHALO ;
GOTO $;
END
25.На входе микроконтроллера подключены 4 датчика. На выходе подключены 2 лампы. Организовать индикацию двоичного номера подключенного датчика. Опрос датчиков осуществлять с периодичностью в 3 секунды. Составьте электрическую схему, таблицу символов и программу.
Include<pic 16F877inc>
Orgo
nop
nop
nop
orgo5
START
CLRF STATUS
BSF STATUS,RP0
CLRF TRISC
CLRF STATUS
M1
CLRF PORTC
BTFSS PORTD,0//D1 goryd
GOTO M2
BSE PORTC,0
M2
BTFSS PORTD,1
GOTO M3
BSE PORTC,1
M3
CLRF PORTC
BTFSS PORTD,2
GOTO M4
BSE PORTC,2
M4
BTFSS PORTD,3
GOTO M5
BSE PORTC,3
M5
PAUSA
GOTO M1
PAUSA MOV LW D’250’
MOVWF I
N1
DECF2 I,1
GROTO N1
RETURN
BC =12*10-3C*250
MART T Число
12 Ma
T=1 M
3 S =3000mc
3*10-3mc=12*1mc*250
26.С портов А, В, С итается двоичный код информации с шины некоторого устройства, наибольшее значение этих трех значений вывести в шину подключенную к порту Д. Составьте электрическую схему, таблицу символов и программу.
include <p16F877.inc>
CH EQU h’20’
BUF EQU h’22’
org 0x000
nop
nop
nop
org 05h
START;
CLRF STATUS;.
BSF STATUS, RP0; Выбор банка 1.
CLRF TRISD;
CLRF STATUS;
CLRF PORTD;
MOVLW PORTA ;
MOVWF CH ;
MOVWF BUF ;
MOVLW PORTB ;
SUBWF CH,1 ;
BTFSS STATUS,C ; C = 1?
MOVWF CH
MOVLW PORTC
SUBWF CH,1 ;
BTFSS STATUS,C ; C = 1?
GOTO METKA
MOVF BUF
MOVWF PORTD
GOTO $;
METKA:
MOVWF CH
MOVWF PORTD
END