如何用PLC梯形图编写脉冲信号生成器程序
最近笔者本人做了个技术改造的项目,将原来设备中的三菱fx2n系列的PLC更换为信捷XC3系列的PLC。在编程调试过程中,发现信捷XC3的模拟量输入信号不像原来的那个三菱的PLC可以设定采样时间,而信捷XC3的模拟量输入信号更新数据过快导致被控对象动作太频繁。为了避免这种情况,本人采用了通过接入脉冲信号来把模拟量输入信号的更新时间调慢一些。系统自带的脉冲信号都不太合适,于是乎自己用梯形图编了脉冲信号接入到其中,解决了问题。
本文笔者介绍两种脉冲信号生成器 的梯形图编程方法:
第一种:周期可调的脉冲信号生成器
笔者上方遇到的模拟量输入更新过快的问题,就是接入这种脉冲信号解决的。
周期可调的脉冲信号生成器,所谓的周期可调,是指该脉冲信号OFF的时间是可调的;ON的时间就是PLC控制器的一个扫描周期的时间,通常很短,一闪即逝,有的甚至肉眼看不到变化。
具体的梯形图程序见下图
程序工作原理:
第一个扫描周期,程序扫描到T0的常闭触点是接通状态,T0定时条件满足,开始计时,3秒(k30*100ms)后,T0线圈得电:T0常闭触点断开,T0计时结束;T0常开触点闭合,脉冲信号M0得电。
第二个扫描周期,扫描到T0常闭触点是断开状态,则T0线圈失电:导致T0常开触点闭合,M0失去电;同时T0的常闭触点闭合。
第三个扫描周期如第一个扫描周期一样,如此循环下去。
通过修改T0的定时时间,就可以更改该脉冲信号的OFF时间。
效果见下方动图:
第二种:占空比可调的脉冲信号生成器
所谓的占空比可调 ,就是指脉冲信号的ON时间和OFF时间 都是可调 的。占空比,指的是ON(接通)时间与OFF(断开)时间的比。
具体的梯形图程序见下图
程序工作原理:
程序扫描的T0常闭触点,触发T1开始计时,1秒(k10*100ms)后,T1线圈得电:T1 常开触点闭合,导致M0得电;同时T0开始计时,3秒(k30*100ms)后,T0线圈得电,T0常闭差点断开,T1线圈失电,T1常开触点断开,导致M0失电。
T1控制脉冲信号M0的断开时间,T0控制脉冲信号M0的接通时间,上图程序段脉冲信号M0D断开秒,接通3秒,如此循环。
通过更改这两个定时器的计时时间,可以生成各种占空比的脉冲信号。
效果见下方动图
补充
本次实验的程序是用三菱PLC的编程软件GX Developer实现的,效果是模拟的FX2N系列的PLC通过编程软件的模拟器实现的。
总结
脉冲信号不起眼,但在项目中可能会发挥大作用。正因为如此,很多PLC厂家都做好了某些频率的脉冲信号给工程师直接使用。但总会遇到特别的应用场景,那些可直接拿来用的不是那么的好用。那么在那个时候,本文的内容就会帮到你!
用了4年信捷PLC了,给大家提点个人小技巧
虽然我也不是什么老司机,就出来工作之后才开始接触信捷PLC的,这么算一下也有4年多了,快5年的信捷PLC的经验了吧。就说说个人对信捷PLC的一些看法。
虽然信捷是一个国产品牌,可能很多公司或个人都不认识,或者是对其质量存在一些担忧;事实上信捷PLC的质量还是可以的,虽然也出现过一些瑕疵或是底层固件不完善导致部分功能会异常,但是信捷的客服还是很有耐心的,声音还很甜美(哈哈哈哈哈),但是也有因为硬件问题解决不了的问题(XC系列PLC本机自带的RS232比较容易受干扰,导致PLC死机的问题);还有信捷可以考虑下增加多几个常用的通讯协议(虽然可以用C自己编),但是会麻烦一点;
还有如果C函数的功能指令能开放多一点就好了,譬如一些通讯指令什么的,还有子程序调用(非同一个函数),全局变量什么的等等一些功能,让这个C函数能发挥出更大的优势。因为学校学的是三菱PLC,当我用上信捷PLC之后,我发现三菱PLC基本没多少优势了,信捷单个PLC可以带10轴啊!而且还支持插补(能实现3轴插补就好了)!C函数等等,再看看三菱PLC,本体带得轴太少了,而且还不能插补,加个单轴模块都是上千的,别提支持插补的两轴模块了,不是客户指定要的话,根本就毫无优势可言,而且控制又不方便,指令变得繁琐,还有延迟~~~;其实我个人还蛮喜欢XC系列时的脉冲指令格式的,因为不能双线圈使用,让我用面向对象的方式进行编程,大大的提高了程序的扩展性和减短了程序的开发周期,每种功能都被独立了出来,然后没段功能程序都开放一个入口一个出口,不知道各位有没有用group和grouped指令的习惯的,这个指令让我的程序分区明确清晰,寻找问题也变得轻松了。如果C函数里面用的变量也支持查找和监控就好了,因为用C函数最大的问题在于程序的调试,虽然C函数对那种多工位,功能一致的项目发挥出了梯形图所不能媲美的优势,但是却不方便调试。
下面是我程序的一些图片:
大部分程序都被做成功能块的形式了,虽然只能通过M或者D进行程序的执行,但是整个架构都是很清晰的。
以上,是我对信捷PLC的一些意见和个人看法,本人的基础个人感觉还可以吧,可能会有说得不对的地方,望见谅,也希望信捷上市之后能把更多的功能补全和提升。
相关问答
请教信捷PLC的脉冲输出指令?
兄弟用DRVA吧如果你在做小车那个问题,断开就停接通就走直到走到你设定的脉冲数兄弟用DRVA吧如果你在做小车那个问题,断开就停接通就走直到走到你设定的...
信捷XD5plc脉冲指令怎样写?
信捷XD5PLC的脉冲指令包括脉冲输出指令(PLSY)、带加减速的脉冲输出指令(PLSR)、回原点指令(ZRN)、增量驱动指令(DRVI)和绝对位置驱动指令(DRVA)等。...信...
信捷PLC的脉冲指令?
主要有以下几种:脉冲输出指令:用于控制输出脉冲,例如DDRVIK50000K10000Y0Y2,可以实现小车正转和反转。可变频率脉冲输出指令:通过设定频率,控制输出...
信捷plc脉冲怎么设置?
信捷PLC脉冲的设置通常涉及到编程软件中的脉冲配置功能,以下是设置脉冲的步骤:1.**打开编程软件**:启动信捷PLC的编程软件。2.**新建工程**:在软件中新建...
信捷XD5plc脉冲标志怎样写?
在信捷XD5PLC中,脉冲标志可以用`PUL`或`PLS`指令编写。`PUL`指令用于生成单个脉冲,而`PLS`指令用于生成一组脉冲。脉冲标志需要指定输出线圈、脉冲...
信捷plc用了DRVI指令后,在写一条PLSY指令,前面的DRVI就不能正常发脉冲了,不知为什么。我没有同时驱动?
三菱PLC对脉冲指令的使用次数方面有限制,用了1种脉冲指令,另1种脉冲指令就不能使用。信捷plc是否也有相同的限制,查一下信捷plc指令手册就知道了。三菱PLC对...
信捷plsr可变速脉冲输出怎么用?
信捷PLSR的可变速脉冲输出指令可以通过以下步骤来使用:首先,确定需要输出脉冲的端口。在指令中,BIT表示输出的端口,你需要指定一个具体的端口。然后,确定...
信捷XC3PLC指令执行完成哪个标志继电器动作三菱的是M8029?
如果是Y0发脉冲的话就是M8170在脉冲结束的瞬间会由ON变为OFF,Y1则是M8173。如果是Y0发脉冲的话就是M8170在脉冲结束的瞬间会由ON变为OFF,Y1则是M8173。
怎么从plc中读取脉冲数?
如果是从plc中读取脉冲数:通过plc通讯口来读取plc内部脉冲数(寄存器);如果是用plc来读别的设备的脉冲数,那通过plc的X0\X1\X2来读取,当然plc中要编写相应的...
信捷PLC怎么控制伺服电机?
用绝对指令时反向运转时需要把方相输出点复位的。例如用y0驱动脉冲,y5控制方向。当需要反向时需要RSTy5用绝对指令时反向运转时需要把方相输出点复位的。例如...