对网友求助问题的几个回帖展示之三十一
本文4例都是在网上回答网友的求助帖,是涉及PLC编程及硬件电路的问题,现整理汇编展示给大家,供大家参考。如有不对之处,请给于指正,本人深表感谢!
一、求助帖:求助配方控制是高手的就过来讨论下:一共有11样东西要进行顺序控制比如(前面数字为固定号码,后面数字可改为顺序控制号)
一 1 二 2 三3 四4 五5 六6 七7 八8 九9 十10 十一11 按这样的顺序号编写的话 顺序不为一,二,三,四依次类推 一直到最后十一结束。
一 0 二 0 三0 四4 五3 六2 七1 八6 九5 十0 十一0 按这样的顺序号编写的话 顺序不为七,六,五,四,九,八结束。 编写为0的顺序直接跳过
有没有高手指点下这个程序用什么指令好编写 不要说是比较,这东西要用比较的话编的血多能吐出来
回复:这里用S7-200按本命题编写一段程序,经上机运行,动作正确,供你参考:
编程构思与解析:
(1)、本程序定义Q0.0为1号设备输出,它的动作顺序设置区为VB0,Q0.1为2号设备输
出,它的动作顺序设置区为VB1……Q1.2为11号设备输出,它的动作顺序设置区为VB10。设置动作顺序时只要在VB0~VB10填写 1~11这11个数字就行。如设VB0=3,则1号设备将在启动设备运行时,是第3个动作。VB0~VB10这11个设备动作顺序设置区,可由上位机或触摸屏设置。
要强调的一点是:本程序的网络4是为试验而设定的VB0~VB10一组数据,正常编程时,网络4不用要删除,否则因它的存在,会使上位机或触摸屏无法设置新数据。
(2)、为实现按启动按钮使各设备能按设置的顺序号动作,采用MB1作加1计数器,具体实施为:按下启动按钮I0.0,I0.0=1的前沿将计数器MB1清0,再使M0.0=1。在M0.0=1期间容许MB1由0开始计数:用SM0.5秒脉冲的前沿使MB1计数加1,用SM0.5秒脉冲的后沿进行比较:用MB1的计数值分别与数字1、2、3……11比较,如在M0.0=1后,第一个SM0.5=1的脉冲前沿使MB1+1,则MB1=1,SM0.5脉冲后沿将MB1值与1、2 …… 11进行比较,由于此时MB1=1,故动作顺序号=1的设备被启动。第二个SM0.5=1的脉冲前沿又使MB1+1,其MB1=2,SM0.5脉冲后沿进行比较,则将动作序号区设置=2的设备启动……以此类推,就可实现按启动序号依次启动。由于程序中没有MB1与0 比较指令,故当某设备的动作序号设置=0时,该设备是不会被启动的。
(3)、本程序是以1秒的间隔依次启动各个设备,如顺序启动各个设备不是定间隔自动启动,而是手动随机的,可用I0.1接手动启动按钮,为防止I0.1因按钮按下过程中产生抖动而引起误操作,可用I0.1=1驱动延时时间=300mS的断电延时定时器T101,用T101输出的正脉冲代替原程序中SM0.5=1的秒脉冲。
我们知道,用手按一下按钮,往往会因抖动产生的一串抖动脉冲,其间隔均<300mS,即< 断电定时机器的延时时间,当这样的抖动脉冲触发断电延时定时器T101时,其第一个出现的脉冲前沿将使定时器T101的输出由0↑1,由于以下的各个脉冲相互间隔<300mS,故使T101=1保持不变,直到最后一个脉冲消失(即I0.1由1↓0),再延时300mS,T101才由1↓0,即T101输出是一个完好的正脉冲(请见下二、求助帖的输入I0.0与定时器Tx输出波形图)。故用T101=1代替I0.1=1,就可消除按钮的抖动影响,即可确保各设备按设定的启动顺序号依次启动。详见下面梯形图:
二、求助帖:按钮启动防抖是什么意思?
今天看一个 200 系列的单按键启动变频器频率上升的例子程序,在程序中看到有一个按钮防抖的小段,有点不太明白,这是什么意思?
如上图, I0.1 不是直接信号,而是能过 T 101 来再输出,这是什么意思?
回复:图中I0.1接的定时器为断电延时型定时器(TOF型),定时时间为300mS,它起防颤动作用。其原理为:
1、断电延时定时器的工作特点是:按下按钮 (I0.1=1),定时器T101线圈得电导通,其常开触点T101立即闭合。按钮抬起(即I0.1=0),定时器线圈虽然失电,但其触点T101需延时300mS后才由闭合便断开。如在小于300mS的延时时间内 I0.0又由0变1,将使原延时时间清零,当I0.0再由1变0后,定时器重新由0开始延时。在此时间内如连续出现几次间隔<300mS的脉冲,定时器将几次将延时时间请0,直到最后一个脉冲结束后,延时300mS由于无脉冲出现,定时器的触点才由1↓0而结束。
2、一般手按按钮产生的抖动脉冲,其脉冲间隔均<300mS,用I0.0接定时=300mS的断电延时定时器,当按钮按下产生抖动时,该定时器就会削掉这些抖动脉冲,即定时器T101的输出为一个无抖动干扰的正方波脉冲,用T101代替I0.0可起到防抖动的作用。见下图:
三、求助帖:我有一个西门子200的CPU和235的扩展模块,需要用其控制一个电动执行机构机构的动作。要接入它的输入和输出信号线,但是只有输入信号,没有输出,百思不得其解怎么回事。求助各位大神告知具体怎么接线!
回复:下面将EM235模块的输入、输出引脚及接线与使用简单介绍一下:EM235是S7-200PLC的模拟量输入与输出模块,它有4路模拟量输入,其输入口引脚为:A+ ~ A-、B+ ~ B-、C+ ~ C-、D+ ~ D- 4路,输入的模拟量可以是电压信号(如单极性0~10V、双极性±10V等),也可以是电流信号(如0~20mA)。有一路模拟量输出,其输出模拟量也可以是电压信号(±10V),也可以是电流信号(0~20mA),其输出口为:V0~M0或I0~M0。至于电压或电流设定及量程选择由EM235内设的PID开关设定。其外型引脚即对外连线图如下:
上图上侧12个端子为4路模拟量输入引线端,第一路输入A+、A- 对内去接AD转换模块1的的±电压输入端,如外接电压发送器,只用A+、A-二个输入端,其RA可空悬。第二路输入B+、B- 对内去接AD转换模块2的的±电压输入端。第二路输入B+、B- 对内去接AD转换模块2的的±电压输入端,如外接电流发送器,需将B+与RB二端并接为一起后,再接电流发送器的电流输出+ ,电流发送器的电流输出- 接B – 接线端,这样当4~20ma电流流入B+、RB端时,将在内部的250欧电阻上产生1~5V电压,即在B+、B-二端产生1~5V的电压信号,这样通过内部电阻将外输入的电流信号转换为电压输入到AD转换模块2的的±电压输入端。第三不用,可将C+C-输入端路,可确保第三输入不受外干扰信号影响。
上图下侧左侧6个端子为:其左2个端子M、L+接23V电源,左3为接地端子,右侧3个端子:M0、Vo、Io为模拟量输出引线端,其Vo-M0二端对外输出电压(如0~10V),而Io-M0二端对外输出电流(如0~20ma)。其输出端直接接负载(如电动阀线圈等)见图示。
对模拟量输入,它只接收外输入模拟信号(电压或电流),对外不输出信号。即EM235将外输入的模拟量信号通过内部AD转换电路转换成与之成比例的数字量信号送到对应数字存数区(如AIW0、AIW2...)由PLC程序进行读取、运算处理。
对模拟量输出回路,它本身没有外输入信号,只对外有输出模拟信号,即:PLC将运算好的数字量传送给AQW0存储器时,EM235立即将此数字量通过内部DA转换电路转换为对应的模拟量(电压或电流)由其输出口(V0~M0或I0~M0)输出给执行机构。
四、求助帖:开关量时间点记录
大家好,我现在要做一台记录仪,要求是
1 记录一个开关量的开通时的时间点,并且能够存储查询。
2 可用PLC或者其他现成的记录仪。
3 尽量简单可靠低成本。
此仪器装在厂区门口,用来记录通车的时间点和通车数量,红外开关已经选好,就差记录仪部分,本人打算用西门子200,和组态王6.53做,虽然要求简单但可虑到软件熟悉。请问还用其他更好的选择没?
回复:用西门子200,和组态王6.53做是可以的,而且对日期、时间的采集都可由组态王完成,可用2个红外开关一前一后摆放,可判断通过的车辆是进车或出车,PLC可对进出车辆进行加1计数,当车离开时产生输出信号给组态王,使组态王将此时刻的时间及进出车数填入表中,下班后可将此数据存入数据库以备以后查询。组态王可以将画面搞的很漂亮。PLC的编程很简单,工作重点是组态王的编程处理。缺点就是造价有点高
如要造价低可用单片机做,其记录可配一台微型打印机,下班时将一天的记录打印出来作为硬件拷贝存档,以备以后查询。
其硬件构成为:单片机用2个输入口,接一前一后摆放的2个红外开关,作检测进出车辆用。用一8位输入口接自制16键键盘,其10个键为置数键,可置0~9十个数,其它6个键,可做命令键,如置年、置月日、小时、分、秒、及打印命令等。再用一8位输出口去接微打印机,做打印输出口。
其软件处理:在单片机程序中作一时间子程序,产生一秒脉冲作为计时用:用它对秒计时存储器计数,计满60 立即清零,且发一分脉冲,去触发分计时存储器计数,分计时存储器计满60 立即清零,且发一小时脉冲,去触发小时计时存储器,小时计时存储器的最大计数23,计到24立即请0……。
当二个光电开关皆收到信号时,立即读取此时刻的时间值(小时、分、秒)送入对应存数区,并根据二个光开关先后接收信号,判断进车或出车,并将对应的进车计数器或出车计数器进行加1计数。
打印格式可为:
2013 年 4月 3日进出车记录
1、9时25分进车
2、9时53分进车
3、10时15分出车
……
总进车数:34 台 总出车数:28台。
按此思路设计,即可实现控制要求,又使设计造价大为降低,而且作出的设备体积很小。
本文到此结束,谢谢!