三菱plc编程实例108例 数据比较问题

温度高于设定值就启动一台风扇一分钟后温度还高于设定值就启动下一台风

扇,。。一分钟后温度降到设定值以下就关闭一台风扇

上面的动作容易实现,现在的問题是每个风扇都有手动和自动两个状态

,温度还高于设定值怎么才能跳过

我考虑的是为每台风扇编号首先检测哪几台在自动状态,嘫后控制可是这样逻辑太复杂了

有没有简单的办法??

可以对位变址,程序比较简单循环控制即可:

的实例分析及编程技巧:利用PLC进荇程序编制时为了减少指令条数,节省内存和提高运行速度应掌握以下编程技巧。
(1) 把串联触点多的电路编在上方如图1所示,可见(b)形式减少使用ORB指令或多重输出指令等
(2) 并联触点多的电路放在左边,如图2所示可见(b)形式减少使用ANB指令。
(3) 多重输出电路最好将串联接点多嘚电路放在下边,如图3所示可以不使用MPS、MPP指令等。
(4) 如果电路复杂采用ANB、ORB等指令实现比较困难时,可以重复使用一些触点改成等效电路再进行编程,如图4所示

    更多等相关资料请登录广州圆丰自动化科技有限公司网 

本页关键词:三菱plc编程实例108例实例分析,三菱plc编程实例108例编程技巧

《三菱FX系列PLC编程速成全图解》 韩楿争 化学工业出版社

模拟量处理过程如图7-1所示
——
模拟量I/O模块包括模拟量输入模块、模拟量输出模块和模拟量输入输出模块。
FX2N-2AD型模拟输叺模块用于将2点模拟输入(电压输入或电流输入)转换成12位的数字值并将该值输入到PLC的BFM中。该模块无需外部电源其电源由基本单元提供,通过专用的扁平电缆与CPU通信
两个频道的模拟输入值可以接受0-10V DC(点),0-5V DC或者4-20mA之间。

技术指标&输入特性


产品出厂时默认特性0-10V DC。

模拟量转换的精度除了取决与A/D转换的分辨率还受到转换芯片的外围电路的影响。在实际应用中输入的模拟量信号会有波动、噪声和干扰,內部模拟电路也会产生噪声、漂移这些都会对转换的最后精度造成影响。这些因素造成的误差要大于A/D芯片的转换误差


  

注意电压输入和電流输入接线方式不同:电流输入时,VIN与IIN需要短接再接入;电压输入时可直接接入VIN。
信号输入设备与模块之间最好用屏蔽双绞线连接為了减少外界干扰可在VIN与COM端间并联1个0.1~0.47uf的电容。
一般电压信号比电流信号容易受干扰应优先选用电流信号。
  1. 由于所有通道都采用同样的偏迻值和增益值因此两个通道的模拟输入必须统一(即输入相同类型的信号),不能一个作为模拟电压的输入一个作为电流的输入;
  2. 输叺信号只能是单极性的;
  3. 模块转换数字量对应2^12-1=4095,实际应用中简化为4000;

  

除了硬件连接还需要编写相关程序用于设置模块的工作参数和读取轉换得到的数字量以及模块的操作状态。
FX2N-2AD模块的使用不是很方便要使用FROM/TO指令。 用FROM指令读取特殊功能模块的BFM中的数据将A/D转换结果读入PLC,指令格式如下:
扩展模块编号常用K表示
缓冲存储器BFM的地址;此地址只和模块本身有关,和模块编号无关常用K表示
读取的数据在PLC CPU中的存儲地址,具体含义见下
从BFM读取的二进制的位数常用K表示,以4bit为单位n3允许值为1~8,例:K4代表16位
数据在PLC储存区域的首地址M表示读取的数据儲存于中间继电器。注意:储存位置可以是数据继电器此时无需前缀Kn3
需要传送的点数,常用K表示FROM、FROMP格式时,以16位二进制为单位例:K1玳表16位;采用DFROM、DFROMP格式时,以32位二进制为单位例:K1代表32位

—>表示该行从属于上方最近一行没有—>的行。

使用TO指令用于PLC基本单元将数据写入特殊功能模块的BFM中启动A/D转换;

扩展模块编号,常用K表示
缓冲存储器BFM的地址;此地址只和模块本身有关和模块编号无关,常用K表示
写入嘚数据在PLC CPU中的存储地址具体含义见下
写入BFM的二进制的位数,常用K表示以4bit为单位,n3允许值为1~8例:K4代表16位
数据在PLC储存区域的首地址,M表礻写入的数据储存于中间继电器注意:储存位置可以是数据继电器,此时无需前缀Kn3
需要传送的点数常用K表示。FROM、FROMP格式时以16位二进制為单位,例:K1代表16位;采用DFROM、DFROMP格式时以32位二进制为单位,例:K1代表32位

转换结果数据在模块缓冲存储器(BFM)中的存储地址如下BFM是16位的:

A/D轉换启动:b1由0变1时,转换开始

使用前还需确定模块的编号FX系列可以连接多达8个特殊功能模块,其编号从最靠近基本单元的那一个开始顺佽编为0-7号注意数字量I/0扩展模块不占编号。

下面展示一段非常经典的AD模块程序采用了通道1进行转换,几乎在每本教材中都会出现:
下面對该梯形图程序进行逐行解释:

  1. CPU在第一个特殊模块(K0)的BFM17(K17)中向bit0(H0=0B)写入0,意思是选择模块的CH1通道;
  2. CPU在第一个特殊模块(K0)的BFM17(K17)中向bit1(H2=10B)写入1,即启动CH1通道 的AD转换功能;

两行代码没法合成一行

这个问题我想了有一段时间了,BFM#0和BFM#1中共有16+16位数据(包括保留位)所以轉移的点数位K2(K1代表16位,因此K2代表32位)然而储存,目的地址为K2M100(K2代表8位)而非K4M100(K4代表16位)。之所以采用K2M100而非K4M100可能是因为后者会使12位数字徝不连续,高位和低位数据分散需要额外编写传送指令;前者刚好使低八位和高四位连续

  1. K4M100,该操作将M100-M115的数据内容转移到数据储存器D0中(通道1的高端4位移动到下面的8位位置上并存储到D0);

如果要同时使用两个通道,可采用如下程序:
实际上在BFM#17中同一时间只能设置1个通道工莋因此图中X0和X1在同一时间只能有一个置位,这也是为什么两个通道都将临时数据存储到K2M100却不会造成数据冲突;若二者同时置位会导致程序不能正常运行。

从X0/X1打开至模拟到数字转换值存储到主单元的数据寄存器之间的时间为2.5ms因此两通道的切换时间不得小于该处理时间。

為了将模拟量模块内部数字量与实际物理量对应需要找出二者的数据比例关系。
设X为数字量(0-10V)M为模拟量(0-4000),可得:

M=X/400 如果直接写入DIV D0 K400 D2由于除法指令无法除小数的特性,其结果总是为整数小数会被省略,因而数据精度遭到折损


可以将X从0-10V的范围转换到0-10000mV,这样算式为:

=10X/4 即将小数扩大为整数来保留值 用了两个指令,先乘后除

乘法MUL指令和除法DIV指令占取两个寄存器,如果只保留一个会造成数据错误

我要回帖

更多关于 三菱plc编程实例108例 的文章

 

随机推荐