51c~嵌入式~PLC~三菱~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/14017873
===> PLC-- 三菱 --专辑
一、三菱PLC定位控制
定位概要
FX3G · FX3U · FX3GC · FX3UC可编程控制器可以向伺服电机、 步进电机等输出脉冲信号, 从而进行定位控制。脉冲频率高的时候, 电机转得快;脉冲数多的时候, 电机转得多。
用脉冲频率、 脉冲数来设定定位对象(工件)的移动速度或者移动量。
定位基本图形
1.基本单元(晶体管输出)
FX3G · FX3U · FX3GC · FX3UC可编程控制器中内置定位功能。
从通用输出(Y000~Y002)输出最大100kHz的集电极开路方式的脉冲串, 可同时控制3轴*1的伺服电机或者步进 电机。
2. 特殊适配器
特殊适配器使用FX3U可编程控制器内置的定位功能,输出最大200kHz的差动线性驱动方式的脉冲串,可同时控 制4轴的伺服电机或者步进电机。
FX3U可编程控制器最多可以连接2台高速输出特殊适配器(FX3U-2HSY-ADP)。
• 第1台FX3U-2HSY-ADP使用Y000、 Y004和Y001、 Y005。
• 第2台FX3U-2HSY-ADP使用Y002、 Y006和Y003、 Y007。
3.特殊功能模块/单元
FX3U · FX3UC可编程控制器可以连接特殊功能模块/单元, 进行定位控制。
此外, 特殊功能单元也可以独立进行定位控制。
1). FX3U可编程控制器的构成
FX3U可编程控制器中最多可以连接8台特殊功能模块/单元。
FX3U可编程控制器中最多可以连接8台特殊功能模块/单元。
2). FX3UC可编程控制器的构成
FX3UC可编程控制器中最多可以连接8台*1特殊功能模块/单元。
连接特殊功能模块/单元时, 一定需要FX2NC-CNV-IF或者FX3UC-1PS-5V。
*1. 与FX3UC-32MT-LT(-2)连接时, 最多可以连接7台。
*2. 与FX3UC-32MT-LT(-2)连接时, 从No.1开始。
3). 单独运行(FX2N-10GM, FX2N-20GM)
特殊功能单元(FX2N-10GM、 FX2N-20GM)可以不连接在可编程控制器上, 而独立运行。
• FX2N-10GM可以控制1轴的伺服电机或者步进电机。
• FX2N-20GM可以控制2轴的伺服电机或者步进电机。此外, 可扩展I/O(最多48点)。
二、三菱PLC指令详解
取指令与输出指令(LD/LDI/LDP/LDF/OUT)
1)LD(取指令) 一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令;
2)LDI(取反指令) 一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令;
3)LDP(取上升沿指令) 与左母线连接的常开触点的上升沿检测指令,仅在指定位元件的上升沿(由OFF→ON)时接通一个扫描周期;
4)LDF(取下降沿指令) 与左母线连接的常闭触点的下降沿检测指令;
5)OUT(输出指令) 对线圈进行驱动的指令,也称为输出指令。
指令取与输出指令的使用说明:
1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;
2)LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通;
3)LD、LDI、LDP、LDF指令的目标元件为X 、Y 、M 、T、C、S;
4)OUT指令可以连续使用若干次(相当于线圈并联),对于定时器和计数器,在OUT指令之后应设置常数K或数据寄存器;
5)OUT指令目标元件为Y、M、T、C和S,但不能用于X;
触点串联指令(AND/ANI/ANDP/ANDF)
1)AND(与指令) 一个常开触点串联连接指令,完成逻辑“与”运算;
2)ANI(与反指令) 一个常闭触点串联连接指令,完成逻辑“与非”运算;
3)ANDP 上升沿检测串联连接指令;
4)ANDF 下降沿检测串联连接指令;
触点串联指令的使用说明:
1)AND、ANI、ANDP、ANDF都指是单个触点串联连接的指令,串联次数没有限制,可反复使用。
2)AND、ANI、ANDP、ANDF的目标元元件为X、Y、M、T、C和S。
3)OUT M101指令之后通过T1的触点去驱动Y4称为连续输出。
触点并联指令(OR/ORI/ORP/ORF)
1)OR(或指令) 用于单个常开触点的并联,实现逻辑“或”运算;
2)ORI(或非指令) 用于单个常闭触点的并联,实现逻辑“或非”运算;
3)ORP 上升沿检测并联连接指令;
4)ORF 下降沿检测并联连接指令;
触点并联指令的使用说明:
1)OR、ORI、ORP、ORF指令都是指单个触点的并联,并联触点的左端接到LD、LDI、LDP或LPF处,右端与前一条指令对应触点的右端相连,触点并联指令连续使用的次数不限;
2)OR、ORI、ORP、ORF指令的目标元件为X、Y、M、T、C、S;
块操作指令(ORB / ANB)
ORB(块或指令)
1)用于两个或两个以上的触点串联连接的电路之间的并联;
ORB指令的使用说明:
1)几个串联电路块并联连接时,每个串联电路块开始时应该用LD或LDI指令;
2)有多个电路块并联回路,如对每个电路块使用ORB指令,则并联的电路块数量没有限制;
3)ORB指令也可以连续使用,但这种程序写法不推荐使用,LD或LDI指令的使用次数不得超过8次,也就是ORB只能连续使用8次以下;
ANB(块与指令)
1)用于两个或两个以上触点并联连接的电路之间的串联;
ANB指令的使用说明:
1)并联电路块串联连接时,并联电路块的开始均用LD或LDI指令;
2)多个并联回路块连接按顺序和前面的回路串联时,ANB指令的使用次数没有限制。也可连续使用ANB,但与ORB一样,使用次数在8次以下;
置位与复位指令(SET/RST)
1)SET(置位指令) 它的作用是使被操作的目标元件置位并保持;
2)RST(复位指令) 使被操作的目标元件复位并保持清零状态。SET、RST指令的使用,当X0常开接通时,Y0变为ON状态并一直保持该状态,即使X0断开Y0的ON状态仍维持不变;只有当X1的常开闭合时,Y0才变为OFF状态并保持,即使X1常开断开,Y0也仍为OFF状态;
SET 、RST指令的使用说明:
1)SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V 、Z。RST指令常被用来对D、Z、V的内容清零,还用来复位积算定时器和计数器;
2)对于同一目标元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效;
微分指令(PLS/PLF)
1)PLS(上升沿微分指令) 在输入信号上升沿产生一个扫描周期的脉冲输出;
2)PLF(下降沿微分指令) 在输入信号下降沿产生一个扫描周期的脉冲输出,
利用微分指令检测到信号的边沿,通过置位和复位命令控制Y0的状态;
PLS、PLF指令的使用说明:
1)PLS、PLF指令的目标元件为Y和M;
2)使用PLS时,仅在驱动输入为ON后的一个扫描周期内目标元件ON,M0仅在X0的常开触点由断到通时的一个扫描周期内为ON;使用PLF指令时只是利用输入信号的下降沿驱动,其它与PLS相同;
主控指令(MC/MCR)
1)MC(主控指令) 用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面;
2)MCR(主控复位指令) 它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置;
在编程时常会出现这样的情况,多个线圈同时受一个或一组触点控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。
MC、MCR指令,利用MC N0 M100实现左母线右移,使Y0、Y1都在X0的控制之下,其中N0表示嵌套等级,在无嵌套结构中N0的使用次数无限制;利用MCR N0恢复到原左母线状态。如果X0断开则会跳过MC、MCR之间的指令向下执行。
MC、MCR指令的使用说明:
1)MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占2个程序步;
2)主控触点在梯形图中与一般触点垂直。主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点必须用LD或LDI指令;
3)MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的元件将复位,22中当X0断开,Y0和Y1即变为OFF;
4)在一个MC指令区内若再使用MC指令称为嵌套。嵌套级数最多为8级,编号按N0→N1→N2→N3→N4→N5→N6→N7顺序增大,每级的返回用对应的MCR指令,从编号大的嵌套级开始复位;
堆栈指令(MPS/MRD/MPP)
堆栈指令是FX系列中新增的基本指令,用于多重输出电路,为编程带来便利。在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。
1)MPS(进栈指令) 将运算结果送入栈存储器的第一段,同时将先前送入的数据依次移到栈的下一段;
2)MRD(读栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据继续保存在栈存储器的第一段,栈内的数据不发生移动;
3)MPP(出栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据从栈中消失,同时将栈中其它数据依次上移;
堆栈指令的使用说明:
1)堆栈指令没有目标元件;
2)MPS和MPP必须配对使用;
3)由于栈存储单元只有11个,所以栈的层次最多11层;
逻辑反、空操作与结束指令(INV/NOP/END)
1)INV(反指令) 执行该指令后将原来的运算结果取反。反指令的使用如图10所示,如果X0断开,则Y0为ON,否则Y0为OFF。https://www.diangon.com/使用时应注意INV不能象指令表的LD、LDI、LDP、LDF那样与母线连接,也不能象指令表中的OR、ORI、ORP、ORF指令那样单独使用;
2)NOP(空操作指令) 不执行操作,但占一个程序步。执行NOP时并不做任何事,有时可用NOP指令短接某些触点或用NOP指令将不要的指令覆盖。当PLC执行了清除用户存储器操作后,用户存储器的内容全部变为空操作指令;
3)END(结束指令) 表示程序结束。若程序的最后不写END指令,则PLC不管实际用户程序多长,都从用户程序存储器的第一步执行到最后一步;若有END指令,当扫描到END时,则结束执行程序,这样可以缩短扫描周期。
在程序调试时,可在程序中插入若干END指令,将程序划分若干段,在确定前面程序段无误后,依次删除END指令,直至调试结束;
FX系列PLC的步进指令
1)步进指令(STL/RET)步进指令是专为顺序控制而设计的指令。在工业控制领域许多的控制过程都可用顺序控制的方式来实现,使用步进指令实现顺序控制既方便实现又便于阅读修改。
FX2N中有两条步进指令:STL(步进触点指令)和RET(步进返回指令)。
STL和RET指令只有与状态器S配合才能具有步进功能。如STL S200表示状态常开触点,称为STL触点,它在梯形图中的符号为-|| ||- ,它没有常闭触点。
我们用每个状态器S记录一个工步,例STL S200有效(为ON),则进入S200表示的一步(类似于本步的总开关),开始执行本阶段该做的工作,并判断进入下一步的条件是否满足。
一旦结束本步信号为ON,则关断S200进入下一步,如S201步。RET指令是用来复位STL指令的。执行RET后将重回母线,退出步进状态。
1)状态转移图
一个顺序控制过程可分为若干个阶段,也称为步或状态,每个状态都有不同的动作。当相邻两状态之间的转换条件得到满足时,就将实现转换,即由上一个状态转换到下一个状态执行。
我们常用状态转移图(功能表图)描述这种顺序控制过程。用状态器S记录每个状态,X为转换条件。如当X1为ON时,则系统由S20状态转为S21状态。
状态转移图中的每一步包含三个内容:本步驱动的内容,转移条件及指令的转换目标。
步驱动Y0,当X1有效为ON时,则系统由S20状态转为S21状态,X1即为转换条件,转换的目标为S21步。
三、三菱PLC采用RS485控制变频器
需要的硬件:三菱FX3G型PLC,485通讯模块(FX3G-485BD), 变频器一台英威腾,触摸屏(MT6071IP)。
需要了解内容:PLC通信协议,发送指令,变频器通信参数设置。
接线
接线较为简单,将FX3G-485-BD模块插在PLC上,将SDB和RDB短接,SDA和RDA短接,在变频器上485+端子引出导线接到模块的SDA和RDA上,在变频器上485-端子引出导线接到模块的SDB和RDB上,采用RS485接口工作半双工,它的意思就是信号的读取和写入不能同时发送,发送的时候不能读取。
接线图
变频器参数设置
将变频器的运行指令和频率指令都改成MODBUS通信设定,在P00组上P00.01运行指令通道改为2:通讯运行指令通道(缺省值0),P00.07B频率指令选择8:MODBUS通讯设定(缺省2),P00.09设定源组合方式1:B,当前频率设定为B频率指令。
通讯参数的设置,在P14组,P14.00将变频器的站号设为1,P14.01波特率设为9600,P14.02数据位校验设为无校验(N, 7, 2)for ASCII。
PLC通讯参数的设定
PLC参数的设定有两种方法
1.在软件(GX-Works2)里设置:点击导航中的参数→PLC参数→PLC的系统设置
PLC系统参数设置
2.采用程序设定
梯形图参数设置
M8161=1,为8位运算,意思就是忽略高8位只传送数据的低8位,为什么这么做后面会说到。MOV HOC88 D8210是指定通讯格式,它是怎么算出来的,我们看下D8120内容:
D8120内容
D8210是一个16位的数据,根据设定的参数来算计算,比如上述程序的H0C88是怎么来的,看下通讯方式是,波特率9600,7位数据长度,无奇偶校验,停止位是2,控制线是无协议的调制解调器模式(RS485接口):
通讯参数计算
相关指令
串行数据发送RS,16进制转换为ASCII码ASCI,ASCII码转换为16进制数HEX.
RS:该指令是用于通过安装在基本单元上的RS-232C或RS-485串行通信口进行无协议通信,从而执行数据的发送和接收的指令。
RS举例
RS指令用于指定从FX可编程控制器发出的发送数据的起始软元件和数据点数, 以及保存接收数据的起始软元件, 和可以接收的最大点数,编程按照下列要领:
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符,MODBUS协议有两种传输模式,ASCII和RTU模式, 本次变频器采用ASCII模式传输信号, 上一章的HMI控制变频器采用的就是RTU模式。因此采用ASCII模式, 所以数据格式M8161选择8位数据模式。
PLC程序
程序大致分为4部分
5.1 变频器功能说明
采用ASCII模式传输数据,在 ASCII 模式中,帧头为“:”(“0x3A”),帧尾缺省为“CRLF”(“0x0D”“0x0A”)。在 ASCII 方式下,除了帧头和帧尾之外,其余的数据字节全部以 ASCII 码方式发送,先发送高 4 位位元组,然后发送低 4位位元组。ASCII 方式下数据为 8 位长度。对于‘A’~‘F’,采用其大写字母的 ASCII 码。此时数据采用 LRC校验,校验涵盖从从机地址到数据的信息部分。校验和等于所有参与校验数据的字符和(舍弃进位位)的补码。
ASCII 帧的标准结构
MODBUS对变频器功能说明:
功能说明
程序
程序可以分5部分
6.1通讯设定
就是第3PLC通讯参数的设定的梯形图
6.2 ASCII码转换
ASCII码转换
根据ASCII 帧的标准结构将数据转换为ASCII码,起始符START:3AH
地址Address:就是站号, 两个ASCII码组成, 例如站号1, 地址就是01H, 转成ASCII码就是30,31, PLC监控:
程序中显示的是10进制。
功能码Function:就是要写入数据还是读取数据,由两个ASCII码组成,写入是06H, 读取是03H。
功能码地址:就是写入或读取的地址,由两个ASCII码组成。
数据内容DATA:就是要写入或读取的数据内容, 由2n个ASCII码组成。
LRC校验值:LRC检查码,由两个ASCII码组成
结束符END:END Hi=0DH, END Lo=0AH。
RS D0 K17 D50 D15 这条指令就是发送以上内容的,D0起始符, D1D2地址,D3D4功能码,D5D6命令码高位地址,D7D8命令码低位地址,D9D10数据内容高位地址,D11D12数据内容低位地址,D13D14LRC检查码,D15D16结束符。
6.3 写入数据
写入数据
M8122是送信指令, 表示在发送信息,ASCI D200 D500 K4.D200为频率数据, 将D200数据转换成ASCII,例如D200=0ABCH,K4就表示D500=0,D501=A,D502=B,D503=C,只转换4位。
D101站号,D102功能码,D103D104功能码高低位地址,D105D106数据内容。
根据变频器的MODBUS功能,我们知道写入频率的地址是2001H, 因此高位20H传到D103,低位01H传到D104,然后将频率值传送到D105D106, 传送完毕LRC值复位。
这样就完成了写的功能,变频器的正反停功能根据上表依次编程。
6.4 读取数据
由于采用半双工工作,写入和读取不能同时进行,
数据读取
意思就是读取数据时,必须在送信、回信、写入指令意外完成。查看变频器功能表,读取频率的地址是3000H。
HMI界面: