大家好,刚学PLC,老师给了个数码管的例子程序,怎么看也不懂,最后自己写了程序:
就是现实一个7段的数码管数字,从0到9然后循环显示,每个数字间隔一秒
我定义的7个数码管对应于PLC点:
Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 a b c d e f g
这里我程序执行出现问题,怎么找也找不到问题啊,我就附上0和1转换的时候的代码:
1、
LD SM0.1
MOVW 0, C1
EU
R Q0.0, 7
2.
LD SM0.5
LD M0.0
CTU C1, 200
3.
LDW= C1, 0
= Q0.0
= Q0.1
= Q0.2
= Q0.3
= Q0.4
= Q0.5
4.
LDW= C1, 2
= Q0.1
= Q0.2
5.
LDW= C1, 4
= M0.0
执行出现的问题,显示0的时候应该q0.0到Q0.5都亮,可是程序执行时Q0.1与Q0.2不亮,循环正常
大家帮帮忙,老师着急要作业,到底是怎么回事?
或者帮我遍遍这个程序啊,谢谢了
最佳答案
7段码最简单的方法是通过SEG指令来进行,能直接将数值转换成7段码值如下:
LD SM0.0
SEG 0, QB0
你的程序我下载运行后确实出现你说的问题,我也不清楚怎么回事,还请高手指教吧
我按照你的思路把你的程序稍微修改了下:
Network 1 // 网络标题
// 网络注释
LD SM0.5
LD M0.0
CTU C1, 200
Network 2
LDW= C1, 0
LPS
EU
R Q0.0, 7
LRD
TON T33, 5
LPP
A T33
S Q0.0, 5
Network 3
LDW= C1, 1
LPS
EU
R Q0.0, 7
LRD
TON T32, 50
LPP
A T32
S Q0.1, 2
Network 4
LDW= C1, 2
= M0.0
编译环境:STEP7 Micro/Win SP6
硬件: S7 226
程序执行能按照预期的执行
提问者对于答案的评价:
谢谢,我今天根据大家的回答教了作业,老师好一个夸奖 谢谢大家
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348075.html