
控制要求说的太笼统,我对“一个按钮实现电机正转反转 停止 并且循环”理解为:第一次按按钮电机正转,第二次按下去电机则反转,第三次按下去电机停止,第四次按下去则电机又开始正转,以三次按键为一个周期循环实现电机正转,反转,停止。以下是我用三菱
GX developer编写的程序,简单解释下,用C1,C2,C3分别记录按键按下次数,分别控制电机正转(Y0),反转(Y1),停止,停止后自动复位三个计数器。在此要特别说明一下,对于控制按钮为什么不用高电平,而是采用下降沿出发的原因:因为人们在平时的 *** 作过程中,按钮按下后释放的时间都有所不同,若采用高电平触发就会出现计数器可能无法正常复位的情况,容易引起误 *** 作。
这个很简单,我教你怎么玩,下面是思路和方式
思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P00到P02来代替;输出2个或以上(这看你接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P10、P11;
PS:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我
现在我们来写程序:
#include <reg51h> //选用晶振110592MHz
unsigned char k=0; //k表示正反转次数
sbit X0=P3^2; //调节按钮
sbit X1=P1^1; //上限位接近开关信号
sbit X2=P1^2; //下限位接近开关信号
sbit Y1=P0^0; //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbit Y2=P0^1; //电机下降
void delay50ms(unsigned int i)
{
unsigned int j;
for (i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1; //下降沿触发
EX0=1; //开P32外部中断
EA=1; //总中断开
while(1)
while(k)
{
Y1=0; //正转
while(X1==1); //等待正转接近开关反应
Y1=1; //正转停
delay50ms(1); //停止时间50ms
Y2=0; //反转
while(X2==1); //等待反转接近开关反应
Y2=1; //反转停
k--; //圈数减一
}
}
void counter0(void) interrupt 0
{
k++; //外部中断控制圈数加一
//这个位置可以加你显示程序
}
程序已经通过测试,放上去就能用,很好玩哟,呵呵
洗衣机也用PLC ?是洗衣机正反转程序 X000是电源开关(制动开关,不是点动哦),X1是时间控制器,Y0是正转输出,Y1 反转输出,T0和T1是正反转时间控制
1采用一个晶体管输出的PLC用Y0或Y1作为脉冲输出,指令可按照不同厂家的PLC查指令表
2Y0或Y1为脉冲信号给步进电机控制器
3另由PLC给一个信号与步进电机控制器作为方向信号如有为正转,无信号则反转
三菱PLC的自动循环正反转程序需要在PLC程序中设置相应的逻辑控制,主要由以下步骤组成:
①设置定时器,控制PLC的运行周期;
②设置开关量输入,根据输入信号决定转向;
③设置比较功能,根据定时器定时输出比较信号;
④设置继电器输出,根据比较信号控制转向改变。
public static void main(String[] args) {
Integer []a={1,2,3,4,5,6};
Integer []b=new Integer[alength];
for(int i=alength-1;i>=0;i--){
b[alength-i-1]=a[i];
}
for(int i=0;i<blength;i++){
Systemoutprintln(b[i]);
}
}
思路:
堆栈有先进后出的特点,所以可以用来对字符串反转,例如abc,逐个进栈,之后逐个出栈,保存,序列变成cba。
例子:
datas segment
input db 'please input string(end with 0):',0dh,0ah,'$'
buff db 100,,100 dup()
datas ends
codes segment
assume cs:codes,ds:datas
start:
mov ax,datas
mov ds,ax
mov dx,offset input
mov ah,09h
int 21h
mov dx,offset buff
mov ah,0ah
int 21h
mov ah,02h
mov dl,0ah
int 21h
mov dl,0dh
int 21h
xor si,si
xor ax,ax
xor di,di
loop1:
cmp buff[si+2],30h
jz toend
mov al,buff[si+2]
push ax
inc si
jmp loop1
toend:
pop ax
mov buff[di+2],al
inc di
dec si
jnz toend
mov buff[di+2],'$'
lea dx,buff[2]
mov ah,09h
int 21h
mov ah,4ch
int 21h
codes ends
end start
说明:输入字符以0结尾,字符个数少于等于98个,程序自己看,好久没练了,可能有些不够简练,你自己优化。
以上就是关于三菱PLC点动正反转程序全部的内容,包括:三菱PLC点动正反转程序、单片机控制交流电机正反转的C语言程序、plc洗衣机正反转程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)