对网友求助问题的几个回帖展示之三十七
本文3例都是在网上回答网友的求助帖,其前二贴是关于PLC编程的,第三贴是关于“通过模拟量输入实现电机正反转”,本帖用二种方案进行解答:第一方案为选用模拟量输入模块配合PLC编程实现的,第二方案是采用硬件比较电路,直接产生使电机正向与反相运行的启动命令信号输入给PLC输入端,第二方案不仅节省一个模拟量输入输出模块,使其设计费用大为降低,而且使PLC编程变的更简单明了。现整理汇编展示给大家,供大家参考。
一、求助帖:我想用实现两组输出循环中的小循环。I0.3和I0.4分别启动第一组输出和第二组输出。其一组为Q0.0和Q0.1,循环间隔2S,第二组为Q0.3和Q0.4,循环间隔也是2S,若第一组循环持续10S自动切换到第二组循环,第二组持续10S后切换至第一组,以此类推。我吧第一组循环放到子程序1,第二组循环放到子程序2.主程序放两个子程序的循环。但是结果不尽人意啊 求助大神!!!
回复:按你的要求,编写如下程序,上机运行正确,供你参考
主程序:
SBR_1子程序:
SBR_2子程序:
二、求助帖:怎么用人机把十进制数转化成ASCII ,这个十进制数不是定数 位数也不定 请教各位前辈应该怎么写这个程序
回复:在如何编写把十进制数转化成ASCII的程序之前,应先知道十进制数与之对应ASIIC码的数学关系及将它们存放存储器的数制表示形式:
1、每一位十进制数其值为0~9,其二进制值为:0000~1001,放在字节存储器将占用4个二进制数的位。一个字节内含8个二进制数的位,故一个字节可表示2位十进制数。这种用4位二进制数表示一位十进制数的数制叫BCD码。
2、每一位十进制数“X”转换为ASIIC码的原则为:30+X 如 X=4,其对应ASIIC码=34,将其放入一字节存储器里用二进制数表示:0011_0100,用16进制数表示:16#34
3、如被转换的十进制数最大为4位数,用BCD码表示可占一个字存储器空间,设为字存储器为MW10,MW10含2个字节,高字节为MB10,低字节为MB11。MB10的高4位为十进制数的千位数值,MB10的低4位为十进制数的百位数值。MB11的高4位为十进制数的十位数值,MB11的低4位为十进制数的个位数值。如将此4位十进制数转换为ASIIC码,需占用一个双字存储器空间,如VD10,它含有4个字节,每个字节代表一位ASIIC码,其每个字节的高4位数值皆=0011(3),低4位数为十进制数对应的数值,如十进制数1234,放入字存储器MW10里。其内容=0001_0010_0011_0100,用16进制数表示为:16#1234,转换为ASIIC码值放入VD10里,其内容=0011_0001_0011_0010_0011_0011_0011_0100,用16进制数表示:16# 31 32 33 34。
了解上述3点,就可以很容易编出把十进制数转化成ASCII的程序:
设MW10为4位十进制数存储区(存数形式为BCD码),VD10为转换为ASIIC码D的存数区。编程可以这样处理:
1、将16#30303030送入VD10.
2、将MB10右移4位送入MB8,再将MB8或入VB10。
3、将MB10与16#0F相与,送入MB8,再将MB8或入VB11。
4、将MB11右移4位送入MB8,再将MB8或入VB12。
5、将MB11与16#0F相与,送入MB8,再将MB8或入VB13。
按这样步骤编程,其VD10的内容即为将MW10内的4位十进制数转换为ASIIC码值。
三、求助帖:如何通过模拟量输入实现电机正反转
通过0-10v模拟量输入控制直流电机或步进电机实现频繁正反转比如输入电压0-3v时控制电机正转,输入电压7-10v时电机反转,输入电压4-6v时电机静止。这个模拟量可能是频繁变化的。三菱plc可以实现吗?
回复:有二种方法可以实现:
1、加模拟量输入模块,配合编程可以实现:以S7-200为例,选用EM235模块,其输入量设为0~10V,对应数字量为0~32000,如输入为0~3V,对应数字量为0~9600,如输入为4~6V,对应数字量为12800~19200,如输入为7~10V,对应数字量为22400~32000。为避免输入量有死区(如3~4V与6~7V之间)应该为这样规定:<4V为电机正转,>7V为电机反转。4V ≤ 输入电压 ≤ 7V时,电机停。这样就可以这样编程:
2、用硬件做比较电路:<4V使输入口I0.0=1(即电机正传启动),>7V时 I0.1=1(即电机反传启动),≥ 4V 且 ≤7V时 I0.0与 I0.1皆=0,即电机停车。见下图:
U1A的3脚电压调整为4V,输入电压<4V时 I0.0=1、I0.1=0,电机正传。当输入电压≥4V且≤7V 时,I0.0=0、I0.1=0,即电机停。当输入电压>4V时 I0.0=0、I0.1=1,电机反传。其梯形图如下:
这二个方案比较可以明显看出:第二方案不用模拟量输入模块,仅用一块LM358集成块、2个电阻、2个微调电阻组成的控制电路,用其输出的正转、反转2个输出点直接输入给PLC的2个输入口作为电机正反运行信号,不仅大大降低设计费用低(仅需几元钱),而且PLC编程也大为简单。
本文到此结束,有不妥之处请给于指正。谢谢大家!