你现在位置:首页>技术论文>数据通讯>正文
上位机与PLC通信与实时控制的实现
日期:2006-4-16 15:43:59 来源:本文摘自《PLC&FA》  
点击: 作者:未知
点击【】放大字体.

1  引言

WWcW_PLCJS_COM-PLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

    在工业控制中,可编程控制器(PLC)由于控制能力强、体积小、抗干扰能力强、可靠性高、使用极为方便等优点而得到了广泛的应用,已经成为现代工业控制的主要技术平台之一。实际应用中往往需要利用PC机对PLC控制程序中的少量参数进行设置或修改,这样就需要解决PC机与PLC进行通信的问题。本文以PLC在罐蒸呢机控制系统中与上位机PC之间通信的实际应用为基础,探讨了PLC与PC机通信问题。系统框图如图1所示:
——可——编——程——控-制-器-技——术——门——户

WWW_PLCJS@_COM%-PLC-技.术_网

2  方案概述

WWW_PL※CJS_COM-PLC-技.术_网

WWW.PLCJS.COM——可编程控制器技术门户

    罐蒸呢机是在纺织行业当中应用较多的设备,其工作流程为:打开高压釜的门;小车从高压釜中退出;梁(轴)装在星形件上;星形件转动;梁装在小车上;小车进入高压釜;高压釜门关闭;在高压釜中循环。
WWcW_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    在罐蒸呢机的控制当中,采用西门子S7-200系列的PLC可满足要求,在系统造价方面要求尽量低。上位机方面:需要控制的数据不是很多,采用专门的组态软件成本太高。基于这种思路,我们在上位机上采用VC++编制串口通讯程序进行数据的传输、控制。
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

    一般S7-200系列通信端口分为四种工作方式:PPI,MPI,PROFIBUS和自由口通信。其中PPI模式只能在PLC停止方式(STOP)下通信,而自由口模式只能在PLC运行方式(RUN)下通信。CPU的串行通信口可由用户程序控制,这种操作方式称之为自由口模式。当选择自由口模式时,用户程序即可以通过发送中断、接收中断、发送指令(XMT)和接收指令(RCV)来控制串行通信口的运行。在自由口模式下,通信协议完全由用户程序来控制。
plcjs.技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

    由于在自由端口模式下,通信协议可完全由梯形图程序控制,还可使用接收中断、发送中断、发送指令和接受指令来控制通信操作,因而选用自由口通信方式。
WWW_PLC※JS_COM-PmLC-技.术_网

3  上位机(PC)控制程序编程

WWW_PLCJS_COM-PLC-技.术_网

P.L.C.技.术.网——可编程控制器技术门户

3.1  初始化
WW.W_PLC※JS_C,OM-PL,C-技.术_网

    上位机的控制程序的编写按照如下步骤进行:
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

(1) 建立基于对话框的MFC应用程序;
WW.W_PLCJS_COM-PLC-技.术_网

(2) 在对话框中插入MSComm控件;
P.L.C.技.术.网——可编程控制器技术门户

(3) 利用ClassWizard定义CMSComm类控制对象;
plcjs.技.术_网

(4) 在对话框中添加MSComm控件,并赋予变量;
WWW_PLCJS@_COM%-PLC-技.术_网

(5) 打开串口、设置参数:需要完成的任务是选择、打开串口,规定波特率,校验类型,数据位、停止位等一些控制信息;
WWW_PLC※JS_COM-PmLC-技.术_网

if(m_ctrlComm.GetPortOpen())
WW.W_PLC※JS_C,OM-PL,C-技.术_网

  m_ctrlComm.SetPortOpen(FALSE);
WWW.PLCJS.COM——可编程控制器技术门户

 m_ctrlComm.SetCommPort(1); //选择com1
WWW_PLCJS@_COM%-PLC-技.术_网

 if( !m_ctrlComm.GetPortOpen())
WWcW_PLCJS_COM-PLC-技.术_网

  m_ctrlComm.SetPortOpen(TRUE);
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

//打开串口
WWW_PLC※JS_COM-PmLC-技.术_网

 else
WWW_P※LCJS_CO※M-PLC-技-.术_网

  AfxMessageBox("cannot open serial port");
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

 m_ctrlComm.SetSettings("9600,n,8,1");
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

//波特率9600,无校验,8个数据位,1个停止位
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

//在该处的设置要同下位机的通讯参数相匹配,一般根据下位机的具体情况设定
——可——编——程——控-制-器-技——术——门——户

 m_ctrlComm.SetInputMode(1);
WWW_PL※CJS_COM-PLC-技.术_网

//1:表示以二进制方式检取数据
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

 m_ctrlComm.SetRThreshold(1);
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

//SetRThreshold(1);
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 //参数1表示当串口接收缓冲区中有大于等于1个字符时将引发接收数据的OnComm事件
WW.W_PLCJS_COM-PLC-技.术_网

 m_ctrlComm.SetInputLen(0);
——可——编——程——控-制-器-技——术——门——户

//设置当前接收区数据长度为0
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

 m_ctrlComm.GetInput();
P.L.C.技.术.网——可编程控制器技术门户

//先预读缓冲区以清除残留数据
WWW_PLC※JS_COM-PmLC-技.术_网

(6) 添加串口事件消息处理函数OnComm。 这个函数是用来处理串口消息事件的,即每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,就会执行刚才添加的函数,在OnComm()函数中加入相应的处理代码就能实现自己想要的功能。
WWW_PLCJS_COM-PLC-技.术_网

plcjs.技.术_网

3.2  控制数据的处理
P.L.C.技.术.网——可编程控制器技术门户

    对控制数据进行存储操作,编程时给控制量赋初值即默认值,每次运行上位机控制程序时将控制数据读出并送给相应的控制单元,即使是第一次运行该程序,点击“运行”也能将控制数据从文件中取出并同步下达到下位机;以后每次更改控制数据时就将该控制数据进行保存,作为新的默认控制数据,以备以后启动设备时使用。

本新闻共3页,当前在第11 2  3  
WWW_P※LCJS_CO※M-PLC-技-.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行