程序流程图是逻辑思维与动作流程的检查图,是保证逻辑思维合理的前提,写代码丢失方向可从程序流程图重新整理,程序流程图非常重要。
组态配置是将所用到的基板和模块等部件型号拖进来。
或者
注意每个模块所用点数,不能出现模块IO号有冲突。
硬件IO数量在前期选型时要比实际开发所用IO数量多加20%-30%,用以后期增加功能使用。硬件IO分配即将IO合理分配使用,将对应的工位分配适量IO使用,需要将对应工位的硬件输入输出分配标注,并形成一个IO表,一般设计前就要知道IO具体所用之处。
估算整机要用到多少数量的软元件/数据地址/继电器(M/B/L/D…),当不足时在软件里将其分配出来使用。
如果默认分配给软元件区域容量实在不够用时,可以将文件存储区域容量减少,增加软元件区域容量,如文件存储区域域减少20K,给软元件区域容量增加20K,相加不超过其总量544K即可,像R08CPU的大型PLC不会有软元件不够用的情况。
给每个CC-LINK阀岛使用的映射字、映射继电器,总量分配方法:工作:三菱PLC之CC-LINK通讯知识及应用第二章第3节
根据机器总共有多少气缸,分配对应中间继电器与寄存器数量,并标注对应气缸名,方便程序实例化创建气缸功能,如下可以实例创建100个气缸(双控电磁阀)
JEC和JEB功能块可共用,当二者伺服混合用时不必分开功能块
给每个伺服使用的映射字、映射继电器,总量分配细节:工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用第二章第1节第(3)点
每个伺服占用50个连续M点,总使用量为总伺服数N乘50,即Nx50个连续M点(下表的M8000-M8049)
下表的D6000-D6099和D50
另外,程序需要判断当前到达了哪个位置,在程序上防止调试人员人为移动轴位置防止撞机
M
主控与按钮
M
M
Year :UINT; //年
Month :UINT; //月
Day :UINT; //日
Hour :UINT; //时
Minute :UINT; //分
Second :UINT; //秒
Start_Hour :UINT; //启动时
Start_Minute :UINT; //启动分
Start_Second :UINT; //启动秒
Finsh_Hour :UINT; //完成时
Finsh_Minute :UINT; //完成分
Finsh_Second :UINT; //完成秒
Runing_Hour :UINT; //运行时
Runing_Minute :UINT; //运行分
Runing_Second :UINT; //运行秒
Stop_Hour :UINT; //停止时
Stop_Minute :UINT; //停止分
Stop_Second :UINT; //停止秒
OK_Number :DINT; //OK数量
Total_Number :DINT; //总数量
PLC_Versions :REAL; //PLC版本号
Set_Production_Num :DINT; //设置生产数量
Feeding_Num :DINT; //已上料数量
Ok_Num :DINT; //Ok数量
NG_Num :DINT; //NG数量
Total_Num :DINT; //总数量
Yield :REAL; //合格率
NG_Percent :REAL; //NG百分比
Cycle_Time :UINT;//机台CT
Start_Hour :UINT;//启动时
Start_Minute :UINT;//启动分
Start_Second :UINT;//启动秒
Finsh_Hour :UINT;//结束时
Finsh_Minute :UINT;//结束分
Finsh_Second :UINT;//结束秒
Runing_Hour :UINT;//运行时
Runing_Minute :UINT;//运行分
Runing_Second :UINT;//运行秒
Stop_Hour :UINT;//停止时
Stop_Minute :UINT;//停止分
Stop_Second :UINT;//停止秒
或者
CC-LINK 模式与通讯速率、占用站数(映射IO和映射字占用量)、映射IO和映射字使用总量等参数设定参考工作:三菱PLC之CC-LINK通讯知识及应用第二章
TCP/UDP/Melsoft/OPS对象的设备连接,参考工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用第三章,设置机器人的TCP Socket通讯,触摸屏的SLMP通讯均在这里设置
一个气缸功能块拥有所有气缸该有的功能
电缸是伺服电机与丝杠一体化设计的模块化产品。
电缸是将伺服电机与丝杠一体化设计的模块化产品,将伺服电机的旋转运动转换成直线运动,同时将伺服电机最佳优点-精确转速控制,精确转数控制,精确扭矩控制转变成-精确速度控制,精确位置控制,精确推力控制;实现高精度直线运动系列的全新革命性产品。
百度百科-电缸
(步进和电缸控制画面一样,只是里面代码有差异)
三菱伺服用下面中间继电器和寄存器就可以实现控制
轴控代码很重要,需要理解,新增轴或出现轴问题时需要进来查
手动操作(Mxxxx)是位移与速度切换、复位(清除)报警、暂停、使能等功能按钮可以操作的前提
(比如这里的M3068)
轴手动定位条件(Mxxx26)是位置选择、位置保存、移动到等定位功能按钮可以操作的前提
轴调试条件(Mxxx27)是JOG+(正转)/JOG-(反转)、停止、设为零点(回零)等动作功能按钮可以操作的前提
轴控监控字与控制字:
D15:是电机的状态显示
D16:是控制电机的指令,不同值代表不同指令
d16.7:清除轴报警
d16.8:轴暂停
这里的D15和D16为监控字与控制字,分别存储了轴状态与轴控制指令的值,分别对应RWrn02【控制指令状态显示(索引号6041)】和RWwn01【控制指令设定(索引号6040)】,具体的状态含义与控制含义查工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用第四章:三菱伺服MR-JE-(…)的CC link IEF状态控制字与状态显示字
轴控界面按钮(或状态)的代码:
自变量注释
A=M8006+N*Z15(50):伺服ON状态。(D15.1控制)
公式的N为轴号
B=M8002+N*Z15(50):轴有报警。(D15.3:ERR和D15.7:WARNNING同时控制)
公式的N为轴号
C=M8022+N*Z15(50):原点回归完成信号(D15.C控制)
公式的N为轴号
D=M8012+N*Z15(50):公式的N为轴号
1:位移模式;0:速度模式。
W0是检测是否切换成了K3:速度轨迹模式
=1(位移模式)时,控制使用M8030+N * Z15(50)启用相对定位模式、将相对移动值D5002+N * Z16(100)放给轨迹位置D5006+N * Z15(50)里及控制启动轨迹寻迹M8033+N*Z15(50)
公式的N为轴号
E=D5014+N * Z1(50),当前位置按位置保存时,可以将位置保存在D=5040+N * Z14上(Z14=”D[50+N]”的值+N * Z16(100),即Z14=D[50+轴号]+轴号*100)
公式的N为轴号
F=D5004+N * Z16(100),手动速度设置,(对于I005 B D8700J是不在JE-T块里,因为其自动速度分为自动慢速和自动快速)
公式的N为轴号
G=D5002+N*Z16(100)
公式的N为轴号
H=M8010+N * Z15(50):控制正转,电机正转远离电机编码器,反转靠近电机编码器
位移模式时,M8010+N * Z15(50)控制【M8030+N * Z15(50)】使用相对定位模式及把位移量和速度给到伺服的位置寄存器W805+N * Z17(32)和速度寄存器W80C+N * Z17(32),相对定位【M8030+N * Z15(50)】常开触点控制开启轨迹位置寻迹及控制使用相对定位模式(发H6F给D16开始相对定位)移动,移动中的标志是M8013+N * Z15(50),移动完成的标志是M8042+N * Z15(50)
速度模式时,控制发送K3给W800+N * Z17(32)【=3轴速度轨迹模式】及发D5004+N*Z16(100)的负值【反转速度】给W807+N * Z17(32),以W800+N * Z17(32)检查状态是否切换为K3为条件发H800F给D16。参考G速度模式。公式的N为轴号
I=M0811+N * Z15(50),反转,和H大同小异
位移模式时,M0811+N * Z15(50)控制【M8030+N * Z15(50)】使用相对定位模式及把位移量和速度给到伺服的位置寄存器W805+N * Z17(32)和速度寄存器W80C+N * Z17(32),相对定位【M8030+N * Z15(50)】常开触点控制开启轨迹位置寻迹及控制使用相对定位模式(发H6F给D16开始相对定位)移动,移动中的标志是M8013+N * Z15(50),移动完成的标志是M8042+N * Z15(50)
速度模式时,控制发送K3给W800+N * Z17(32)【=3轴速度轨迹模式】及发D5004+N * Z16(100)的负值【反转速度】给W807+N * Z17(32),以W800+N * Z17(32)检查状态是否切换为K3为条件发H800F给D16。参考G模式。公式的N为轴号
J=M8001+N*Z15,复位,只有在M3068=1(手动操作模式,没有加减乘除)才可以用,当有轴报警时,按下使控制指令D16.7=1。
公式的N为轴号
K= M8000+N*Z15,使能,只有在M3068=1(手动操作模式,没有加减乘除)才可以用,使(B83F+N * Z18)=1,让给轴初始化,上使能
公式的N为轴号
L=M8003+N * Z15(50),暂停,只有在M3068=1(手动操作模式,没有加减乘除)才可以用,使控制指令D16.8=1
公式的N为轴号
M=M8004+N*Z15(50),轴停止,只有在M8027=1【M8005+N * Z15(50)=1,轴手动模式(没有自动运行);D15.1=1; (M8002+N * Z15)=0,轴无报警】时才可以用。
公式的N为轴号
N=M8020+N * Z15(50),回零,只有在M8027=1【M8005+N * Z15(50)=1,轴手动模式(没有自动运行);D15.1=1; (M8002+N * Z15)=0,轴无报警】时才可以用。公式的N为轴号
O=M3030+N,刹车,不在JE-T块里,只有在M76=1【机器为手动模式】时才可以用。
公式的N为轴号
P=D50+N,位置选择,给每个位置对应到(D50+N)的值里面去,用来选择位置使用,注意区分的是,不是用来保存位置的值。只有M8026+N * Z16)=1【M8005+N * Z15(50)=1,轴手动模式(没有自动运行);D15.1=1; (M8002+N * Z15)=0,轴无报警;M8022+N * Z15(50)=1,原点回归完成】时才可以使用。
公式的N为轴号
Q= D5018+N*Z16,位置坐标值显示
公式的N为轴号
R= M8040+N * Z15(50),位置保存,只有(M8026+N*Z16)=1【M8005+N * Z15(50)=1,轴手动模式(没有自动运行);D15.1=1; (M8002+N * Z15)=0,轴无报警;M8022+N * Z15(50)=1,原点回归完成】时才可以使用。
公式的N为轴号
S=M8041+N * Z15(50),移动到,只有(M8026+N*Z16)=1【M8005+N * Z15(50)=1,轴手动模式(没有自动运行);D15.1=1; (M8002+N * Z15)=0,轴无报警;M8022+N * Z15(50)=1,原点回归完成】时才可以使用。
公式的N为轴号
当轴走完正转 / 反转的位置轨迹模式时,其会触发轴暂停。W800+N*Z17(32)=1:切换回速度模式,轴暂停关闭
公式的N为轴号
是在网口的对象连接设备里的序号
如图里的NO.2 (Socket通信)就是底壳上料机器人, 所以这里的连接通道是K2
所发送的数据,分配一段连续的20个数据寄存器地址,地址[0]寄存器是存发送的数据内容长度的,地址[1]寄存器 ~ 地址[19]寄存器是存数据内容的,所以这里的地址填的是所分配的寄存器的首寄存器地址,当发送时FB块会将内容长度算出来放到地址[0]寄存器里,如分配了D8000-D8019,则这里填D8000,D8000数据内容长度,D8001-D8019是内容
手动关闭端口,用于在发送超时时,将通讯关闭,重新再连
触发信息发送
发送信息中是状态,发送信息和触发发送信息中是同步置ON的,当FB块将信息发送完成后,FB块会将发送信息中的状态复位
这是机器人正常通讯上标志,发送信息和手动关端口时,可以卡这个检查是否连接上,再继往下执行程序
所接收的数据,分配一段连续的20个数据寄存器地址,地址[0]寄存器是存接收的数据内容长度的,地址[1]寄存器 ~ 地址[19]寄存器是存数据内容的,所以这里的地址填的是所分配的寄存器的首寄存器地址,当接收到内容时FB块会将内容长度算出来放到地址[0]寄存器里,如分配了D8020-D8039,则这里填D8020,D8020数据内容长度,D8021-D8039是内容
数据接受完成的状态,当数据接受完成,这状态将置ON。可以利用此状态完成数据刷新到触屏(最好是用接受的数据直接刷新到触屏)
数据发送完成的状态,当数据发送完成,这状态将置ON,
存储通讯出错代码,占用1个D
启动/停止/暂停/清报警/程序复位:PLC输出信号通知机器人
机器人报警/机器人在自动运行中:机器人输出信号通知PLC
按步骤:
新最新TCP功能块加入了,发送信息中状态在发时置ON,发完会自动置OFF
将接收到信息与编号对应,发出去内容的编号与接收回来的信号编号应一一对应,程序中卡接收信息的编号与发送的相同才往下走。
以下可以不写在自动里
MOV ( true , K0 , D7904 );
RST ( true , "重发功能" );
PLC程序版本号管理及开机延时,开机延时是主要如三联件气压上升,电脑开机或其他外设连接需要加延时,不可一开机立马就出现错误报警
启动、停止、复位、手动/自动切换开关、急停等信号汇总
启动
停止
复位
手动/自动切换开关
急停
手动/自动模式
允许气缸操作(放置HMI触控条件)
按钮灯
开启自动时,需要处理的功能按钮
工位轴暂停分3种形式触发:
取消工位轴暂停有2种个形式:
多轴联动情境
将可动条件串联、移动按钮共用一个
轴动作需抬气缸情境或多轴联动先抬Z轴情境
运动方式与防护方式与手动一致时,可以不用另写“轴移动-自动”代码
多轴联动情境-同上述的此章第(九)节第1点
轴动作需抬气缸情境或多轴联动先抬Z轴情境-同上述的此章第(九)节第2点
主要对程序一些非气缸信号作延时,使取到的是稳定信号或者输出一定时间的信号
FbSensor_50(i_Sensor:= X26C ,SensorTime:= K2 ,O_Sensor=> M270 );//下料机-料盘放反检测 屏蔽地址L
FbSensor_51(i_Sensor:= X26D ,SensorTime:= K2 ,O_Sensor=> M271 );//下料机-料盘有无检测 屏蔽地址L
FbSensor_52(i_Sensor:= X26E ,SensorTime:= K2 ,O_Sensor=> M272 );//下料机-料盘限高检测 屏蔽地址L
FbSensor_53(i_Sensor:= X26F ,SensorTime:= K2 ,O_Sensor=> M273 );//下料机-料盘底部到位检测 屏蔽地址L
FbSensor_54(i_Sensor:= X270 ,SensorTime:= K0 ,O_Sensor=> M274 );//下料机-Z轴上料盘减速检测 屏蔽地址L
FbSensor_55(i_Sensor:= X271 ,SensorTime:= K0 ,O_Sensor=> M275 );//下料机-Z轴上料盘到位检测 屏蔽地址L
FbSensor_56(i_Sensor:= X272 ,SensorTime:= K5 ,O_Sensor=> M276 );//下料机-料盘回收满料检测 屏蔽地址L
FbSensor_57(i_Sensor:= X273 ,SensorTime:= K0 ,O_Sensor=> M277 );//下料机-上料盘-安全光栅 屏蔽地址L
FbSensor_58(i_Sensor:= X274 ,SensorTime:= K0 ,O_Sensor=> M278 );//下料机-收料盘-安全光栅 屏蔽地址L
方式一:
方式二:
一个工位有4个小工位
方式二:
依主页的整机启动、整机初始化按钮触发每个工位的自动与初始化按钮,每个工位收到信号则进行相应流程
方式一二两种不同方式,一一对应关系,需分开看
设备状态
整机一键启动代码(触发启动按钮信号)
这种方法代码量最少,也最简
方式一二两种不同方式,一一对应关系,需分开看
LD "工位启动"
LD "工位初始化完成"
LD "工位初始状态"
= "流程步号1" K0
= "流程步号2" K0
MOV K100 “流程步号1”
MOV K100 “流程步号2”
//RST "工位暂停"
RST "工位启动"
方式二一键开自动省写代码,将在这里补回
方式一二两种不同方式,一一对应关系,需分开看
手动模式存在复位信号3秒或初始化信号M存在3秒,触发整机每个工位初始化的按钮信号。
注意,L0-L49是工位屏蔽类和物料屏蔽类,不用复位,L50-L100是强制OK类锁存器,要复位。
. ------------ ------------------ ------------- -------------------- ------------------------
方式一二两种不同方式,一一对应关系,需分开看
触发一个主控M点,此M点控制初始化的动作
. ----------------------------------------------------
.--------------------------------------------------------------------------
方式一二两种不同方式,一一对应关系,需分开看
将清料处理代码放这里,统一管理,自动流程里拦截的L、M可以由体现到达了哪里
一键将所有空跑老化模式按钮开启
将工位主体程序放在主控里,报警和按钮信号调动控制主控接通的切断中间继电器,如下面的M405信号。
存放自动运行中的条件
要手动操作,必须为手动模式+必要的安全防呆
直接用气缸功能块FB实例化,这里不用另起标题
轴坐标超过设定值不允许动作,增加保护
建议直接放在对应工位自动程序报警里
哪个工位有报警,哪个工位停止下来,有两种方式,大同小异
I005是整机有报警会触发轴立马暂停,但是I002不会
详细报警是为连续M点,可将工位报警放一块
哪个工位有报警,哪个工位停止下来,有两种方式,大同小异
I005是整机有报警会触发轴立马暂停,但是I002不会
设备状态:三色灯管理,状态管理,状态显示
运行状态:数据管理,班次数据输出
参考本文第九章第1节:设置供机器人等客户端打开服务器端器号(Active的Socket)
参考本文第九章第2节
工位物料数据和清零按钮
工位物料数据和清零按钮
整机每个工位物料汇总到给总界面,总界面可以一键清所有数据
写好手动程序后,可以将电机参数设定好写入,并调整刚性。参考:工作:三菱伺服驱动器参数及电机钢性参数配置与调整