c语言和plc编程,PLC编程-C语言PPT学习课件

本文详细介绍了华中数控系统中PLC编程的应用,包括数字控制和顺序控制的范围,寄存器的作用和分类,以及PLC程序的结构。通过实例解析了如何使用C语言定义和操作寄存器,以及PLC常用指令和函数的使用。此外,还展示了如何处理轴回零、M代码控制和定时器等功能的实现,强调了在编程中使用有意义的变量和函数以提高代码可读性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

华中数控培训讲义PLC编程,C语言编程,1,,PLC控制的范围,数控机床所受到的控制可分为两类:数字控制和顺序控制。数字控制主要指对各进给轴进行精确的位置控制,包括:轴移动距离、插补、补偿等。顺序控制主要指以CNC内部和机床各行程开关,传感器,按钮,继电器等的开关量信号状态为条件,并按照预先规定的逻辑顺序对诸如主轴的起停,刀具的转换,工件的夹紧松开,液压,冷却,润滑系统的运行等进行的控制。与“数字控制”比较,“顺序控制”的信息主要是开关量信号。PLC控制的范围包括全部顺序控制和简单的数字控制(如:轴点动),2,,寄存器是数控系统、PLC、机床三者之间交流的载体,是PLC控制的主要对象,也是PLC程序的最小单元。,寄存器的分类,3,,寄存器的个数,4,,PLC源代码的基本构成,初始化函数voidinit();仅上电时调用一次高速扫描函数voidplc1();每隔8ms被调用一次低速扫描函数voidplc2();每隔128ms被调用一次,5,,PLC执行程序的生成,运行环境---MSDOS6.22编译器---BorlandC++3.1BC31的路径需要加入OS的环境变量编译环境---各种信息定义文件(*.inc)PLC源文件铣---plc_21mu.cld车---plc-21.cppPLC头文件车---plc_map.h(主要包含IO点的定义),6,,PLC头文件的生成,plctab_t.dat(IO点信息文件),standplc.exe(标准PLC配置软件),,,plc_map.h,7,,寄存器的数值说明,以R寄存器为例,不同的类型有着不同的取值范围。(注:PLC不支持浮点运算),8,,定义自己的R寄存器,正确的定义方式#definespdl_ctrlR[20]//主轴控制(0停止1正转2反转)#definespdl_cmdR_i[22/2]//主轴转速#definespdl_dwellR_ui[24/2]//主轴定时器#defineLube_dwellR_ul[28/4]//润滑定时器,C语言编程中,使用带有含义的变量,往往比直接对R寄存器操作更加直观。定义自己需要的R寄存器,是编程的第一步。一般说来,类似记录开关量的状态,用char型的变量。如果需要记录类似主轴转速或用作短时间计时器的话,则用int型的变量,而记录轴的位置或用作长时间计时器,则需要用long型的变量。,错误的定义方式#definespdl_ctrlR[20/2]//主轴控制(0停止1正转2反转)#definespdl_cmdR_i[22]//主轴转速#definespdl_dwellR_ui[23/2]//主轴定时器#defineLube_dwellR_ul[26/4]//润滑定时器,9,,PLC常用指令浅析一,#definebit(x,b)((x)//点亮+Z灯elseclr_bit(Y[33],5);//熄灭+Z灯,10,,PLC常用指令浅析二,#defineaxis_ctrl(x)(G_ui[(x)*10])//轴控制#defineaxis_stat(x)(F_ui[(x)*10])//轴状态#definech_ctrl(x)(G_ui[(x)*20+162])//通道控制#definech_stat(x)(F_ui[(x)*20+162]//通道状态,不同的G和F寄存器代表不同的意义,这些已经由CNC控制软件定义定义在plc.h中,这里只针对几个常用的寄存器作一个简单的讲解。,实例一:X轴负限位的处理(假设X轴负限位X0.1,当前通道为0)if(bit(X[0],1))*axis_ctrl(0)|=AX_LSN;//通知CNC,X轴已到负限位else*axis_ctrl(0)//清除标记(注:AX_LSN的定义详见plc.h),11,,PLC常用指令浅析二,实例二:循环启动的处理(按键X31.6,灯Y31.6)if(bit(X[31],6)){*ch_ctrl(0)//熄灭循环启动灯,12,,PLC常用函数浅析一,除了宏定义,函数也是PLC必不可少的组成部分。前面我们已经介绍了PLC不可或缺的三个函数init()、plc1()和plc2(),这里我们再介绍几个常用的函数。,voidset_axis_home(intaxis,intstart_stop);voidset_axis_jog(intaxis,intspeed);voidset_axis_step(intaxis,longdisplacement);voidhandwheel(inth_no,intaxis,intstep_mul);,if(bit(X[35],3))//-Zjogset_axis_jog(2,-100);elseset_axis_jog(2,0);注:这里速度单位是脉冲/秒。若设计单位是毫米/分钟,需要先乘上(插补周期/60)。假设插补周期为4ms,那么1500毫米/分钟等同于100脉冲/秒,13,,PLC常用函数浅析一,实例:X轴回零的处理(正点动X35.4,回零挡块X1.0)#defineFinding_Axis_ZeroR[7]if(*axis_stat(0),14,,PLC常用函数浅析二,M(辅助)、S(主轴速度)、T(刀具)指令是PLC经常会用到的功能,它们可以让用户在G代码中自动控制机床的动作而不需要手工干预。M、S、T分别对应函数exec_M()、exec_S()、exec_T()。它们需要在初始化的时候就加载到扫描周期中。,voidinit(void){set_mst_func(0,M,exec_M);set_mst_func(0,T,exec_T);set_mst_func(0,S,exec_S);},15,,PLC常用函数浅析二,M代码编程实例一:吹气,假设开关Y2.3voidexec_M(intch){switch(*ch_M_code(ch)){case88://吹气开set_bit(Y[2],3);mod_M_code(ch)=-1;//M代码完成break;case89://吹气关clr_bit(Y[2],3);mod_M_code(ch)=-1;//M代码完成break;}},16,,C语言编程实例一触发器,intget_raise(intg,intb)//取上升沿{intv=0;if(bit(X[g],b)){if(bit(R[600+g],b)==0)v=1;elseset_bit(R[600+g],b);}elseclr_bit(R[600+g],b);returnv;},#definecoolantR[100]voidplc1(void){if(get_raise(30,5)){if(coolant)coolant=0;elsecoolant=1;}if(coolant)set_bit(Y[30],5);//点亮冷却灯elseclr_bit(Y[30],5);//熄灭冷却灯},17,,C语言编程实例一触发器,intget_fall(intg,intb)//取下降沿{intv=0;if(bit(X[g],b)==0){if(bit(R[600+g],b))v=1;elseclr_bit(R[600+g],b);}elseset_bit(R[600+g],b);returnv;},18,,C语言编程实例二定时器,#definetcntR_i[300/2]#defineTMR[302]voidplc1(void){TM=0;if(bit(X[1],0))//压力报警{if(tcnt<2000/8)tcnt++;elseTM=1;}elsetcnt=0;if(TM==1)报警…},当检测到压力报警,延时2S后输出报警,假设压力报警点1.0,19,,C语言编程实例三M代码,,20,,Switch语句,,21,,

展开阅读全文

一、PLC的定义、特点及分类 二、PLC的构成及原理 三、 S7-200 PLC 四、S7-200 PLC编程 五、S7-200 PLC基本指令 内容目录 第1页/共68页 PLC培训资料全文共68页,当前为第1页。 一、可编程控制器定义、特点及分类 1 、可编程控制器的产生及定义 1968年由美国通用汽车公司(GE)提出,1969年由美国数字设备公司(DEC)研制成功,有逻辑运算、定时、计算功能称为PLC(programmable logic controller)。 第2页/共68页 PLC培训资料全文共68页,当前为第2页。 2 、可编程控制器的特点 使用于工业环境,抗干扰能力强; 可靠性高; 控制能力极强; 使用、编程方便; 组成灵活。 所以,可以称为全功能工业控制计算机。 第3页/共68页 PLC培训资料全文共68页,当前为第3页。 3 、可编程控制器的分类 按I/O点数可分为大、中、小型三大类: 小型:I/O点数在256点以下; 中型:I/O点数在256~1024点之间; 大型:I/O点数在1024点以上。 第4页/共68页 PLC培训资料全文共68页,当前为第4页。 二、可编程控制器构成及原理 1 、可编程控制器的构成 第5页/共68页 PLC培训资料全文共68页,当前为第5页。 可编程控制器通过循环扫描输入端口的状态,执行用户程序,实现控制任务。 2 、可编程控制器的工作原理 第6页/共68页 PLC培训资料全文共68页,当前为第6页。 扫描周期及工作方式 扫描周期 S7-200 CPU连续执行用户任务的循环序列称为扫描。 CPU周而复始地循环扫描工作。 执行CPU自诊断 写输出 处理通讯请求 执行程序 一个扫描周期 读输入 第7页/共68页 PLC培训资料全文共68页,当前为第7页。 输入采样阶段 程序执行阶段 输出刷新阶段 扫描周期 输入刷新 输出刷新 输 入 映 象 寄 存 器 输 入 端 子 输 出 端 子 输 出 锁 存 器 元 件 映 象 寄 存 器 也可以把周期简化为读输入、执行用户程序写输出三个阶段。 第8页/共68页 PLC培训资料全文共68页,当前为第8页。 3 、PLC控制系统组成 第9页/共68页 PLC培训资料全文共68页,当前为第9页。 S7(SIEMENS)系列PLC分为S7-400、S7-300S7-200等大、中、小(微)三个子系列。 三、S7-200 PLC 第10页/共68页 PLC培训资料全文共68页,当前为第10页。 S7-200 系列PLC的构成 S7-200小型可编程控制系统由主机(基本单元)、I/O扩展单元、功能单元(模块)外部设备(文本/图形显示器、编程器)等组成。 第11页/共68页 PLC培训资料全文共68页,当前为第11页。 主机I/O及扩展 0.8m 第12页/共68页 PLC培训资料全文共68页,当前为第12页。 数据在存储器中的存取方式 MSB LSB 7 6 5 4 3 2 1 0 I0 I1 I2 I3 I4 I5 第13页/共68页 PLC培训资料全文共68页,当前为第13页。 7 6 5 4 3 2 1 0 M100 M101 M102 M103 7 6 5 4 3 2 1 0 M100 M101 M102 M103 7 6 5 4 3 2 1 0 M100 M101 M102 M103 7 6 5 4 3 2 1 0 M100 M101 M102 M103 M100.0 MB100 MW100 MD100 位、字节、字双字对同一地址存取操作的比较 第14页/共68页 PLC培训资料全文共68页,当前为第14页。 S7-200数据存储区及元件(内部资源)的功能 外部输入点 输入端子 Q0.0 L 负载 电源 I0.0 M0.0 I0.1 ( ) 1.输入映像区 (I0.0~I15.7) 2.输出映像区 (Q0.0~Q15.7) 第15页/共68页 PLC培训资料全文共68页,当前为第15页。 3.内部标志位 (M0.0~M31.7) 4.定时器 ( T0~T255 ) 5.计数器(C0~C255) 6.顺序控制继电器(S0.0~S31.7) 7.特殊存储器 (SM0.0~SM179.7) 第16页/共68页 PLC培训资料全文共68页,当前为第16页。 梯形图编辑器(LAD) 语句表编辑器(STL) 功能块图编辑器(FBD) 四、S7-200编程 第17页/共68页 PLC培训资料全文共68页,当前为第17页。 STEP7-Micro/WIN编程软件的使用与安装 SIMATIC S7-200编程软件是指西门子公司为S7-200系列可编程控制器编制的工业编程软件的集合,其中STEP7-micro/WIN软件是基于Windows的应用软件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值