西门子plc300编写交通红绿灯程序梯形图

西门子plc300编写交通红绿灯程序梯形图,第1张

西门子plc300编写交通红绿灯程序梯形图如上图所示:

用西门子PLC300的计时块来搭建脉冲程序的具体 *** 作步骤如下:

1首先要在画面上显示出总缆。

2然后将总缆窗口拖至左侧,这样方便我们查找计时程序块。

3这时候插入启动按钮,这里是做的一个简捷的按钮,在实际中做一个笛自锁比较好。

4然后在总缆中插入时间计时块并输入脉冲时间及位号。

5之后再加入两个时间常闭点,这样能实现互锁。

6想要在硬件上调试的话,可以再加两个输出灯来进行调试。

unsigned char counter;

sbit red_nb=P2^0;

void main()

{

TMOD=

TH0

TL0

ET0

TR0

while(1) //根据楼主所给,有4种状态

{

state1;

state2;

state3;

state4;

}

}

void timer0() interrupt 1 //定时器0

{

TH0=0x3c;

TL0=0xb0;

counter++;

}

void state1() //控制南北红灯亮,东西绿灯亮,30s

{

unsigned char temp = 30;

red_nb=1;

green_dx=1;

while(1)

{

if( counter>19){counter=0;temp--} //每次counter=20,即1s,temp自减

if(temp) break; //当temp为0时,即30秒,退出状态1,进入状态2

}

}

没经过测试,完全是5分诱惑不大。。

;交通灯模拟实验程序

GEWEI EQU 21H ;个位数据

SHIWEI EQU 23H ;十位数据

SCANLED EQU 25H

SCANMODE EQU 26H

RED EQU 28H ;定义灯的缓冲区

GREEN EQU 29H

YELLOW EQU 32H

NUMTIM EQU 33H

LED EQU 34H

ORG 000H

JMP START

ORG 0BH

JMP TIMER0 ;定时器0中断入口

ORG 100H

START:MOV SP,#50H

MOV R0,#20H

MOV R5,#20

CLR0:MOV @R0,#00H

INC R0

DJNZ R5,CLR0

MOV TMOD,#01H ;设置定时器

MOV TH0,#HIGH(65536-5000)

MOV TL0,#LOW(65536-5000)

SETB TR0

MOV IE,#10000010B ;端口初始化

MOV P0,#0FFH

MOV P1,#0FFH

MOV P2,#00H

MOV P3,#0FFH

MOV R3,#10

MOV R2,#3

MOV R1,#10

MOV R7,#200

MOV RED,#10

MOV YELLOW,#3

MOV GREEN,#10

MOV NUMTIM,#10

MOV LED,#0FFH

AJMP $

;============================================================= TIMER0:PUSH ACC ;定时器部分,负责交通灯的及时和数码管动态扫描

PUSH PSW

MOV TH0,#HIGH(65536-5000) ;重新赋初值

MOV TL0,#LOW(65536-5000)

DJNZ R7,RET0

MOV R7,#200

MOV A,SCANMODE ;调用扫描

MOV B,#4

DIV AB

MOV A,B

RL A

MOV DPTR,#TAB_SCAN

JMP @A+DPTR

TAB_SCAN: AJMP RED_LIGHT

AJMP YEL_LIGHT

AJMP GRE_LIGHT

AJMP YEL_LIGHT

RET0: MOV A,NUMTIM

LCALL BIN_BCD

MOV SHIWEI,A

MOV GEWEI,B

INC SCANLED

MOV A,SCANLED

MOV B,#4

DIV AB

MOV A,B

RL A

MOV DPTR,#TAB_SCAN0

JMP @A+DPTR

TAB_SCAN0:AJMP SCAN_L1

AJMP SCAN_L2

SCAN_L1: MOV P2,#0

MOV A,SHIWEI

JMP END_SCAN

SCAN_L2: MOV P2,#1

MOV A,GEWEI

JMP END_SCAN

END_SCAN:MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,LED

MOV P1,A

POP PSW

POP ACC

RETIRED_LIGHT:MOV LED,#11111100B

MOV NUMTIM,RED

DEC RED

MOV A,RED

CJNE A,#0FFH,RET0

MOV RED,#10

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

JMP RET0

YEL_LIGHT:MOV LED,#11110011B

MOV NUMTIM,YELLOW

DEC YELLOW

MOV A,YELLOW

CJNE A,#0FFH,RET0

MOV YELLOW,#3

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

JMP RET0

GRE_LIGHT:MOV LED,#11001111B

MOV NUMTIM,GREEN

DEC GREEN

MOV A,GREEN

CJNE A,#0FFH,RET1

MOV GREEN,#10

MOV A,SCANMODE

ADD A,#01H

MOV SCANMODE,A

RET1:JMP RET0 BIN_BCD:MOV B,#10

DIV AB

RET DELAY: MOV R5,#02

D1: MOV R6,#200

D2: MOV R7,#200

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH;共阴字码表

DB 07H,7FH,6FH,77H,7CH,39H,5EH

DB 79H,71H,76H,73H,3EH,00HEND

PLC控制梯形图设计  

十字路口南北及东西方向均设有红、黄、绿三个信号灯,六个灯以一定的时间顺序循环往复工作。如下表所示:

方向

时间顺序

南北方向

南北绿(8s),东西红(8s)

南北黄(21s),东西红(21s),

南北红(101s),东西绿(8s),东西黄(21s)

东西方向

东西红(101s),南北绿(8s),南北黄(21s)

东西绿(8s),南北红(8s)

东西黄(21s),南北红(21s)

相应的元器件安排如下:

元器件

作用

X000

起动及循环起点,南北绿,东西红。

Y000

南北绿输出

Y001

南北黄输出

Y002

东西红输出

Y003

东西绿输出

Y004

东西黄输出

Y005

南北红输出

M0

中间继电器,把X000的状态保持。

T0

东西红定时

T1

东西绿定时

T2

东西黄定时

T3

南北绿定时

T4

南北黄定时   

T5

南北红定时

根据以上分析,其梯形图可设计如图1

要求:

1、一路延时60S,

一路延时40S

(演示时为节省时间,一路延时15S,一路延时10S>>

两路时间分别用不同的数码管显示;

--相同的,即可。

--比如:

--东西绿灯、南北红灯,两个方向的数字显示,都是60s倒计时。

--东西红灯、南北绿灯,两个方向的数字显示,都是40s倒计时。

--两路时间虽然不同,数码管显示应该是相同的,完全可以用一组数码管显示。

2紧急通行控制,如某一方向现为红灯,通过按键强行切换为绿灯,而另一路改为红灯,延时若干秒(10S)后,恢复原状态(红灯)继续倒数

--不应恢复原状态。

--比如:

--东西绿灯、南北红灯,两个方向的数字显示,都是60s倒计时。

--在 59s 时,即仅仅剩下 1s 时,被强制转换了红绿灯。

--那么 10s 后,再恢复原状态

--原状态,仅仅有 1s,还恢复它干什么

--这时间,可能,都不够汽车起步用的。

--恢复原来的半截状态,显然不合理。

以上就是关于西门子plc300编写交通红绿灯程序梯形图全部的内容,包括:西门子plc300编写交通红绿灯程序梯形图、C语言程序设计编写一个交通红绿灯的控制,各位高手帮帮忙急!、设计一个交通灯控制电路程序(单片机)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9309994.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存