求助,知道程序了要写梯形图 点击:580 | 回复:5



joezz624

    
发表于:2010-06-17 19:30:41
楼主

  本人是一名马上毕业的大四的学生,后天就要答辩了,可是论文出了点问题,由于我们学习PLC是选修课而且学的是欧姆龙的,而我的毕业设计是用西门子的做的,现有了程序,但是不会翻译成梯形图,由于时间紧迫,只能求助于大家。求好心人给稍微花点时间做一下,程序如下:

***主程序***
LD SM0.1 仅首次扫描周期SM0.1置位(SM0.1=1)
MOVW +500, SMW68 输出脉冲周期为500微秒
MOVW +0, SMW70 脉宽为0(脉宽调制)
MOVD +40000, SMD72 输出40000个脉冲
ATCH 0, 19 把中断程序0分配给中断事件19(P 脉冲输出结束)
ENI 允许中断
设置转动方向
LDN M0.1 若电机处于停止状态,
A I1.5 且转向开关置于1
S Q0.2, 1 则逆时针转动(Q0.2=1)
NETWORK 3
LDN M0.1 若电机处于停止状态,

AN I1.5 且转向开关置于0
R Q0.2, 1 则顺时针转动(Q0.2=0)
NETWORK 4 联锁
LD I1.1 若按"STOP"(停止)按钮
S M0.2, 1 则联锁有效(M0.2=1)
解除联锁
LDN I1.0 若"START"(起动) 按钮松开
AN I1.1 且"STOP"(停止)按钮松开,
R M0.2, 1 则解除联锁
起动电机
LD I1.0 若按"START"(起动)按钮
EU 上升沿
AN M0.2 且无联锁
AN M0.1 且电机停止 则
MOVB 16#85, SMB67 置脉冲输出功能的控制位
PLS 0 起动脉冲输出(Q0.0)
S M0.1, 1 电机运行标志M0.1置位(M0.1=1)
停止电机
LD I1.1 若按"STOP"(停止)按钮,
EU 上升沿
A M0.1 且电机正在转动,则
R M0.1, 1 电机运行标志M0.1复位(M0.1=0)
MOVB 16#CB, SMB67 置脉冲输出功能的控制位,PWM的脉宽为0
PLS 0 输出端Q0.0无脉冲
主程序结束
MEND
***中断程序0***
INT 0
NETWORK 10
LD SM0.0
R M0.1, 1 电机运行标志M0.1复位(M0.1=0)
NETWORK 11 中断程序0结束
RETI


标题:用脉冲输出进行定位控制
主程序
LD SM0.1 仅首次扫描周期SM0.1才为1
R M0.0,128 MD0至MD12复位
ATCH 0,19 把中断程序0分配给中断事件19(脉冲串终止)
ENI 允许中断
脉冲输出功能的初始化
MOVW 500,SMW68 脉冲周期T=500us
MOVW 0,SMW70 脉冲宽度为0(脉冲调制)
MOVD 429496700,SMD72 为参考点设定的最大脉冲数
设置逆时针旋转
LDN M0.1 若电机停止
A I1.5 且旋转方向开关=1
S Q0.2,1 则逆时针旋转(Q0.2=1)
设置顺时针旋转
LDN M0.1 若电机停止
AN I1.5 且旋转方向开关=0
R Q0.2,1 则逆时针旋转(Q0.2=0)
联锁
LD I1.1 若按“STOP”(停止)按钮
S M0.2,1 则激活联锁(M0.2=1)
解除联锁
LDN I1.1 若“START”(启动)按钮松开
AN I1.0 且“STOP”(停止)按钮松开
确定操作模式(参考点定位控制)
LD I1.4 若按“设置/取消参考点”按钮
EU 上升沿
CALL 1 则调用子程序1
启动电机
LD I1.0 若按“START”(启动)按钮
EU 上升沿
AN M0.1 且电机停止
AN M0.2 且无联锁
AD≥ SMD72,1 且步数≥1,则
MOVB 16#85,SMB67 置脉冲输出功能(PTO)的控制位
PLS 0 启动脉冲输出(Q0.0)
S M0.1,1 “电机运行”标志位置位(M0.1=1)
定位控制
LD M0.3 若已激活“定位控制” 操作模式
AN M0.1 且电机停止
CALL 2 则调用子程序2
停止电机
LD I1.1 若按“STOP”(停止)按钮
EU 上升沿
A M0.1 且电机运行,则
CALL 0 则调用子程序0
MEND 主程序结束
子程序1
SBR 0 子程序0停止电机
MOVB 16#CB,SMB67 激活脉宽调制
PLS 0 停止输出脉冲到Q0.0
R M0.1,1 “电机运行”标志位复位(M0.1=0)
RET 子程序0结束
SBR1
子程序1, “确定操作模式
LD M0.1 若电机运行
CALL 0 则调用子程序0,停止电机
申请“参考点曲线”
LD M0.3 若已激活“定位控制”,则
R M0.3,1 参考点标志位;复位(M0.3=0)
R Q1.0,1 取消“定位控制激活”信息(Q1.0=0)
MOVD 429496700,SMD72 为新的“参考点曲线”设定最大的脉冲数
CRET
条件返回到主程序
申请“定位控制”
LDN M0.3 若未设置参考点(M0.3=0),则
S M0.3,1 参考点标志位置位(M0.3=1)
S Q1.0,1 输出“定位控制激活”信息(Q1.0=1)
RET 子程序1结束
子程序2
SBR2 子程序2,“定位控制”
MOVB IB0,MB11 把定位角度从IBO拷到MD8的最低有效字节MB11
R M8.0,24 MB8至MB10清零
DIV 9,MD8 角度/9=q1+r1
MOVW MW8,MW14 把r1存入MD12
MUL 25,MD8 q1×25→MD8
MUL 25,MD12
DIV 9,MD12 r1×25/9= q2+r2
CALL 3
在子程序3中循环步数
MOVW 0,MW12 删除r2
+D MD12,MD8 把步数写入MD8
MOVD MD8,SMD72 把步数传到SMD72
RET子程序2结束
子程序3
SBR3 子程序3,“循环步数”
LDW≥MW12,5 如果r2≥5/9,则
INCW MW14 步数增加1
RET 子程序3结束
中断程序0,“脉冲输出终止”
INT0 中断程序0
R M0.1,1 “电机运行&rd



楼主最近还看过

SSI ļʱ