『7x24小时有问必答』
    本项目实战通过常见的打螺丝机器来跟大家分享怎么从零开始做一个项目,本项目会基于主框架不变,大家易理解的原则来呈现内容。
    基于三菱、威纶通触摸屏、基恩士扫码枪与C上位机,实现自动化打螺丝追溯系统,记录每台手机螺丝的装配时间和装配结果数据。
整个项目分5章展开,今天来讲第(三)节:
(一)电气前期设计:方案、需求、I/O表、选型、PLC & 上位机交互协议
(二)上位机设计:开发C WinForms 软件,实现扫码枪 SN 码读取、PLC 状态交互及生产数据存储查询;
(三)PLC 程序设计:使用GX Works2编写梯形图;
(四)触摸屏设计:使用EasyBuilder Pro编写触摸屏界面;
(五)调试和总结:上位机连接实物PLC,连接虚拟扫码枪(可用串口模拟)进行我们的动作调试。

一、设备动作流程和程序框架梳理
    写程序我们不能拿到方案马上就开始动手打开软件边编写边想,我们需要提前规划好程序的流程,一般公司都会有自己的程序框架,这里我们简单自己构思一个。
1,梳理动作流程
2,程序框架构思
此程序使用分模块的方式实现,程序比较简单,我们分5个模块。
模块定义:
    参数恢复出厂设置。整机初始化模块。

    手动模块。自动模块。报警模块。

3,创建程序
    因为我们前面选型是FX3U-32MT/ES-A,这里选择FX3U/FX3UC机型,工程类型选择简单工程,程序语言使用入门的梯形图。记得勾选“使用标签”,这样我们程序可以分块处理更方便。
4,地址区域划分
我们常用有D、M、X、Y、T几种元件。给不同模块划分一块区域,让程序看起来更规范,我们查看和编写也更方便。
首先我们先熟悉这些寄存器分别哪些类别,可以在:工程-->参数-->PLC参数-->软元件设置。如下图进行查看:
关于写PLC的逻辑流程,一般有两种常见的方式:
用基础触点M一步步的方式。
用一个D=K0、K1、K2的方式。
我习惯使用D的方式,我们按照这个来规划下。

流程控制寄存器D划分(用断电保持):
整机初始化模块:D200-D209
手动模块:D210-D219
自动模块:D220-D229
报警模块:报警一般没有流程,这里不分配了。

参数寄存器D划分(用断电保持):
整体不细分,统一用D300-D399区间。

M划分:
输出Y转换:M0-M19,对应Y0-Y17,方便记忆。
控制信号:M20-M29,如启动、停止、复位等。
手动控制:M30-M49。
参数恢复出厂设置:M50
产量归零:M51
上位机通讯:M100-M149,第一章节已经划分了。
报警标志:M150-M169。
自动模块用:M200-M249
    其它因为前期也不能完全预估,实际写程序的时候再根据实际情况调整。

5,程序编写
(1)添加IO注释。
在X0后面批量复制或者单个输入注释都可以。
Y同理。
(2)建立程序模块
在程序位置右键-->新建数据
输入数据名,因为中文字符太多建议字母
参数恢复出厂设置-cshuifu
整机初始化模块-csh

手动模块-sd
自动模块-zd
报警模块-bj
确定会弹出下框,先点否,此项目暂时不需要这个设置。
其他4个同样新建,把主程序的改成自动模块,最后如下:
(3)编写程序内容
a,参数恢复出厂设置程序
因为我们不管是第一台机器,还是复制机器,各个参数需要设置一个默认值,不然容易出现问题且不好找,这个坑相信大家都踩过,所以我们的程序必须要有一个一键恢复出厂参数设置的功能。
我们先列一下有哪些参数:
总产量:D300(第一章用了D100,为了断电保持我们改为D300双字)
回零回归速度:D302(为方便演示三个轴默认发1个脉冲走同样距离)
回零爬行速度:D304
X轴速度:D306
Y轴速度:D308
Z轴速度:D310
螺丝孔1-X轴位置(脉冲):D312
螺丝孔1-Y位置(脉冲):D314
螺丝孔1-Z轴位置(脉冲):D316
螺丝孔2-X轴位置(脉冲):D318
螺丝孔2-Y位置(脉冲):D320
螺丝孔2-Z轴位置(脉冲):D322
螺丝孔3-X轴位置(脉冲):D324
螺丝孔3-Y位置(脉冲):D326
螺丝孔3-Z轴位置(脉冲):D328
螺丝孔4-X轴位置(脉冲):D330
螺丝孔4-Y位置(脉冲):D332
螺丝孔4-Z轴位置(脉冲):D334
安全位-X轴位置(脉冲):D336
安全位-Y位置(脉冲):D338
安全位-Z轴位置(脉冲):D340

备注:脉冲数值一般较大,所以以上所有D都采用32位双字,就是会占用两个D。

参数基本列出来了,我们在程序里面进行初始化,双击cshuifu->程序本体就可以进行编程了。

下面大概画一个坐标(抽象图!!!),这样大家看着坐标给参数初始化就知道输入多少了。以下脉冲数是我们设计的位置,其中Z轴高度都设计为60000个脉冲。

最后把M50让它自复位一下。
到这里我们的参数初始化程序就完成了。
整个程序太多,发现这个文章会太长,先把思路完成,我再重新写一遍文章只写程序的,并把源程序附在公众号里面可以下载,就像前面放置源代码的上位机一样,实在抱歉。
今天的分享就先到这里,后续进行完整PLC程序的分享和发布。

大家如果有什么疑问或需要交流的欢迎留言讨论,喜欢的点个赞或收藏起来吧。
以下我的其他技术文章看可不可以给大家提供帮助:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码