PLC300四个小项目
- 控制要求:两台电动机的顺序起动顺序停止控制。要求第一台电动机起动3秒后第
二台电动机方能手动起动,第一台电动机停止3秒后第二台方可手动停止。要求两台电动机
均要有运行指示(绿灯)和过载报警指示(红灯),当某台电动机发生过载时,两台电动机
均立即停止,发生过载的电动机其报警指示灯以1Hz频率闪烁,直至按下停止按钮。
逻辑:
1. 程序开始
I1.0(常开) ----> I1.2(常闭) ----> I1.3(常闭) ----> I1.5(常闭) ------------> Q1.0(线圈)
Q1.0(常开) ---->|(并联) |(并联)-------> Q1.2(线圈)
|(并联)-------> (S) S_ODT(定时器) (Q) -----> M2.0
S5T#3S(TV)
2. 开关过载等主控
M2.0(常开) -----> Q1.0(常开) ----> I1.1(常开) ----> M2.3(常闭) ----> I1.4(常闭) ----> I1.5(常闭) --------> Q1.1(线圈)
Q1.0(常开) ----------------------------------|(并联) |(并联)---> Q1.3(线圈)
3. 电动机启动3秒限制第二台时间到后才能启动
I1.2(常开) ----> I1.0(常闭) ---> M2.1(线圈)
M2.1(常开) ---->|(并联) (并联) ---> (S) S_ODT(定时器) (Q) ---> M2.2(线圈)
S5T#3S(TV)
4. 信号源控制
M2.2(常开) ---> Q1.0(常闭) ---> I1.3(常开) ---> M2.3(线圈)
5. 第一台电动机过载保护闪烁
I1.4(常开) ---> I1.2(常闭) ---> M2.5(线圈)
M2.5(常开) --->|(并联) |(并联) ---> M0.5(常开) ---> Q1.4(线圈)
6. 第二台电动机过载保护闪烁
I1.5(常开) ---> I1.3(常闭) ---> M2.6(线圈)
M2.6(常开) --->|(并联) |(并联) ---> M0.5(常开) ---> Q1.5(线圈)
- 控制要求:8个霓红灯控制。要求按下起动按钮,奇数盏灯(1、3、5、7盏全部点
亮)亮1s,全部熄灭1s,然后偶数盏(2、4、6、8盏全部点亮)再亮1s,全部熄灭1s,然
后8盏灯全部亮1s,再全部熄灭1s,如此循环,直至按钮下停止按钮后全部熄灭。
1. 启动逻辑
I1.0(常开) ----> I1.1(常闭) ---------> M2.1(线圈)
M2.1(常开) ----|(并联) |(并联)------> M2.2(常闭) (S) S_ODT(定时器) (Q) ---> M2.2(线圈)
S5T#6S(TV) (BI)--> MW12
I1.4(R)
2. 奇数盏灯亮1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#55(IN)(OUT)QB1 ---> QB1(亮1秒)
500(IN2) 600(IN2)
3. 奇数盏灯灭1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#0(IN)(OUT)QB1 ---> QB1(灭1秒)
400(IN2) 500(IN2)
4. 偶数盏灯亮1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#AA(IN)(OUT)QB1 ---> QB1(亮1秒)
300(IN2) 400(IN2)
5. 偶数盏灯灭1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#0(IN)(OUT)QB1 ---> QB1(灭1秒)
200(IN2) 300(IN2)
6. 全部灯亮1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#FF(IN)(OUT)QB1 ---> QB1(亮1秒)
100(IN2) 200(IN2)
7. 全部灯灭1秒逻辑:
M2.0(线圈) ---> CMP>I(比较指令>I) ---> CMP<I(比较指令<I) ---> (EN) MOVE(移位指令) (ENO)
MW12(IN1) MW12(IN1) W#16#0(IN)(OUT)QB1 ---> QB1(灭1秒)
0(IN2) 10(IN2)
8. 按下全部停止逻辑:
I1.1(常开) ----> (EN) MOVE(移位指令) (ENO)
W#16#0(IN) (OUT)QB1
- 控制要求:按下起动按钮后,数码管开始9秒倒计时,直至倒计时到0,在此过程中,
若再次按下起动按钮无效。若按下停止按钮,数码管全部熄灭,再次按下起动按钮,数码管
再进行9秒倒计时。
1. 启动逻辑
I1.0(常开) ---> I1.1(常闭) ----------------->M0.0(线圈)
M0.0(常开) --->| |------> M0.1(常闭) (S) S_OUT
S5T#1S (TV)
I1.1 (R)
2. 时间到给定时器复位
T0(常开) ----> M0.1(线圈)
3. 赋予初始倒计时初始值9
M1.2
M0.0(常开) ----> (P)(上升延) -----> (EN)MOVE(移位指令)
9(IN) (OUT)MW12
4. 每间隔1S减1S
M1.1
M0.0(常开) -----> M0.1(常开) ----> (P) (上升延) -----> CMP>I (比较指令>I) -----> (EN) SUB_I(减法指令) (ENO)
MW12(IN1) MW12(IN1) (OUT)MW12
0(IN2) 1(IN2)
5. 开始显示数字9
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#6F(IN) (OUT)QB3
9(IN2)
6. 开始显示数字8
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#7F(IN) (OUT)QB3
8(IN2)
7. 开始显示数字7
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#7(IN) (OUT)QB3
7(IN2)
8. 开始显示数字6
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#7D(IN) (OUT)QB3
6(IN2)
9. 开始显示数字5
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#6D(IN) (OUT)QB3
5(IN2)
10. 开始显示数字4
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#66(IN) (OUT)QB3
4(IN2)
11. 开始显示数字3
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#4F(IN) (OUT)QB3
3(IN2)
12. 开始显示数字2
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#5B(IN) (OUT)QB3
2(IN2)
13. 开始显示数字1
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#6(IN) (OUT)QB3
1(IN2)
14. 开始显示数字0
M0.0(常开) --------> CMP==I(比较指令==I) --------------> (EN) MOVE(移位指令)(ENO)
MW12(IN1) W#16#3F(IN) (OUT)QB3
0(IN2)
13. 停止运行全部熄灭
I1.1(常开) -----> (EN) MOVE(移位指令) (ENO) -----------> (EN) MOVE(移位指令) (ENO)
0(IN) (OUT)MW12 0(IN) (OUT)QB3
- 1.控制要求:按下起动按钮后,东西方向绿灯亮5s,以1Hz频率闪烁3次,黄灯亮3s,
然后红灯亮8s,再以1Hz频率闪烁3次;与此同时,南北方向红灯亮8s,再以1Hz频率闪
烁3次,然后绿灯亮5s,以1Hz频率闪烁3次,黄灯亮3s,如此循环,直到按下停止按钮
后所有交通灯全部熄灭。
1. 启动逻辑
I1.0(常开) ---> I1.1(常闭) ---> M2.0(线圈)
M2.0(常开)|(并联)
2. 计算时间启动定时器倒计时逻辑
M2.0(常开) ---> I1.1(常闭) ---> M2.1(线圈)
M2.1(常开) --->|(并联) |(并联) ---> M2.3(常闭) ---> (S) S_ODT(定时器) (Q)
S5T#22S(TV) (BI)MW10
I1.1(R)
3. 计时到位的时候复位定时器
T1(常开) ----> M2.3(线圈)
4.东方向绿灯亮5S
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M3.0(线圈)
MW10(IN1) MW10(IN1)
170(IN2) 220(IN2)
5. 以1HZ闪烁3次
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M0.5(常开) ---> M3.1(线圈)
MW10(IN1) MW10(IN1)
140(IN2) 170(IN2)
6. 连接到灯
M3.0(常开) ---> Q1.1(线圈)
M3.1(常开)|(并联)
7. 黄灯亮3秒
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> Q1.2(线圈)
MW10(IN1) MW10(IN1)
110(IN2) 140(IN2)
8. 红灯亮8S
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M3.2(线圈)
MW10(IN1) MW10(IN1)
30(IN2) 110(IN2)
9. 以1HZ亮3次
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M0.5(常开) ---> M3.3(线圈)
MW10(IN1) MW10(IN1)
0(IN2) 30(IN2)
10. 连接灯
M3.2(常开) ---> Q1.0(线圈)
M3.3(常开)|(并联)
东西方向结束
11. 南北方向红灯亮8秒
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<=I) ---> M3.4(线圈)
MW10(IN1) MW10(IN1)
140(IN2) 220(IN2)
12. 以1HZ闪烁3次
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I)---> M0.5(常开) ---> M3.5(线圈)
MW10(IN1) MW10(IN1)
110(IN2) 140(IN2)
13. 连接到灯
M3.4(常开) ---> Q1.4(线圈)
M3.5(常开)|(并联)
14. 绿灯亮5秒
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M3.6(线圈)
MW10(IN1) MW10(IN1)
60(IN2) 110(IN2)
15. 以1HZ闪烁3次
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M0.5(常开) ---> M3.7(线圈)
MW10(IN1) MW10(IN1)
30(IN2) 60(IN2)
16. 连接到灯
M3.6(常开) ---> Q1.5(线圈)
M3.7(常开)|(并联)
17. 黄灯亮3秒
M2.0(常开) ---> CMP>=I (比较指令>=I) ----> CMP<I (比较指令<I) ---> M4.0(线圈)
MW10(IN1) MW10(IN1)
0(IN2) 30(IN2)
18. 连接到灯
M4.0(常开) ---> Q1.6(线圈)
理论基础
- S7-300PLC由哪些模块构成?
- 导轨(RACA)、电源模块(PS)、CPU模块、接口模块IM、信号模块(SM)、功能模块(FM)、通信模块(CP)
- S7-300PLC的计数器有几种类型,在计数时,什么情况下计数器触点的状态为“0”,什么情况下则计数器触点的状态为“1”?CPU314C模块的计数器编号范围为多少?
- 3种,计数器计数为0时,计数不为“0”,Co~C255
- S7-300PLC 的定时器有几种类型,定时最大值为多少?定时器预置值的格式为?
- 5种,999os或2小时46分钟30秒,S5T#
- QD2、QW2、QB2、MD0、MW0、MBO等类似的表示的具体含义及高低位的分配
等相关问题。
-
QD2:双字(DINT)类型的变量,用于存储32位有符号整数。
QW2:字(WORD)类型的变量,用于存储16位有符号整数。
QB2:字节(BYTE)类型的变量,用于存储8位有符号整数。这些变量名中的“Q”通常表示它们是输出变量(Q代表“Quelle”,德语中的“源”,在PLC编程中通常表示输出)。数字“2”可能表示它们是数据块中的第二个变量,或者它们在输出区域中的地址。
MD0:字节(BYTE)类型的变量,用于存储8位有符号整数。
MW0:字(WORD)类型的变量,用于存储16位有符号整数。
MBO:字节(BYTE)类型的变量,用于存储8位有符号整数。这些变量名中的“M”通常表示它们是中间变量(M代表“Mittelwert”,德语中的“中间值”),用于存储程序执行过程中的临时数据。数字“0”表示它们是数据块中的第一个变量,或者它们在中间存储区域中的地址。
在PLC编程中,变量的高低位分配通常遵循以下规则:
对于字节(BYTE)类型的变量,如QB2或MD0,高位是字节中的最高位(第7位),低位是字节中的最低位(第0位)。
对于字(WORD)类型的变量,如QW2或MW0,高位是字中的最高位(第15位),低位是字中的最低位(第0位)。
对于双字(DINT)类型的变量,如QD2,高位是双字中的最高位(第31位),低位是双字中的最低位(第0位)。在实际编程中,这些变量可以被用作位、字节、字或双字的访问,具体取决于编程的需要。例如,QW2可以被用作一个16位的整数,也可以被分解为两个独立的字节(QB2.0和QB2.1),或者四个独立的位(QB2.0、QB2.1、QB2.2和QB2.3)。
- L#428 等类似表达的含义。
-
在PLC编程中,L#428等类似的表达通常是指一个符号地址,它代表了一个特定的数据类型和存储位置。在S7-300PLC中,这种符号地址通常用于引用系统位存储区(SMB)中的一个位。
SMB(系统存储器位)是S7-300和S7-400PLC中的一个特殊存储区域,用于存储系统状态信息、诊断信息、参数设置等。SMB位通常用于与PLC的硬件和系统功能进行交互。
L#428中的“L”表示这是一个位地址,而“#”表示这是一个符号地址。数字“428”是SMB位编号。因此,L#428指的是SMB位编号为428的位。
在实际编程中,可以使用L#428来读取或写入SMB位编号为428的位的状态。例如,可以使用以下指令来读取L#428的值:
IF L#428 THEN
// 执行某些操作
END_IF
或者使用以下指令来设置L#428的值:
L#428 := TRUE; // 设置L#428为TRUE
SMB位的编号和功能可能会根据PLC的型号和固件版本而有所不同。