水电电工知识
电工知识|用VC++开发微机与OMRON PLC间的通讯程序
2016-03-26  浏览:55
水电之家讯:1、前言

可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用了可编程序的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数和算术操作等面向用户的指令,并通过数字式或模拟式输入输出控制各种类型的机械的生产过程。可编程控制器及其有关外部设备,都按易于与工业控制系统联成一个整体、易于扩充其功能的原则设计。早期的plc以数字量的顺序控制为主,提供了简单的慢速的通信功能(只支持RS232、RS485、多采用Modbus协议),现在的PLC不仅具有逻辑运算、顺序控制、定时、计数和算术操作,而且还具有A/D、D/A转换,数值计算和数据处理等功能。它既可以对开关量进行控制,也可以对模拟量进行控制,随着PLC功能不断扩充,它还有通讯联网功能,举例C200HX/HG/HE的OMRONPLC的CPU内的RS-232C端口和外设端口支持通信功能就有与编程设备(如编程器,LSS,或SSS(中文版))进行通信、与个人计算机和其它外设进行上位机链接通信、与个人计算机和其它外设进行RS-232C、与其它PC进行1:1、再有是与装有NT链接接口的可编程终端(PT)进行NT链接通信(1:1、1:N),本课题就是基于OMRONPLC的链接通信(有通信协议),用VC++开发的上位机与PLC间的通信。

2、OMRONPLC的通信协议

目前,随着PLC的快速发展,越来越多的PLC生产厂商开发了它与计算机的通信功能(主要是利用计算机串口进行通信),本文是以C200HEPLC为例,作详细阐述,本文的通信协议采用的是上位机链接通信。上位机链接通信通过在上位机与PLC之间交换命令和应答实现的。在一次交换中传输的命令和应答数据称为一帧,一个帧最多可包含131个数据字符。

命令帧格式

从上位机发送一个命令时,按下示的格式排列命令数据



@符号必须置于每个命令的开头,节点号是用来辨识每一台PLC的节点,在本文中,它设置PLC的DM6558单元中,识别码设置两字符的命令代码,设置通信是读写PLC的哪个寄存器单元,例读写IR/SR区时它的识别码设置分别为RR和WR,读写DM区分别为RD和WD。正文设置命令参数,包括所要读写PLC寄存器单元的起始地址和字数。FCS是设置两字符的帧检查顺序码,是一个转换成2个ASCII字符的8位数据,这8位数据为从帧开始到正文结束(即FCS之前)所有数据执行“异或”操作的结果。终止符设置“*”和回车(CH R$(13))两字符,表示命令结束。命令帧可以有最多131个字符长。一个等于或大于132字符的命令必须分成若干帧。命令分段,使用回车定界符(CH R$(13))。

应答帧格式



识别码和正文取决于接收到的上位机联结命令,结束码表示命令完成的状态(即是否有错误发生),当应答超过132字符,它必须分成若干帧。结束码是应答帧中表示PLC应答的信息。例结束代码为00表示正常结束,13表示FCS错误,14表示格式错误,15表示入口码数据错误,18表示帧长度错误,A3表示传输数据时因FCS错误引起终止,A8表示传输数据时因帧长度错误引起终止。

本文的上位机命令帧包括读写PLC单元中的数据的命令。读命令帧为:@01RR0100000141*+CH R$(13),意思是上位机读取节点为1的PLC中的IR0100单元中的内容。写命令帧为:@01WR0100000171*+CH R$(13),意思是写一个数到节点为1的PLC的IR0100单元中。

3、系统结构图

下图是计算机与PLC通信的组成系统图



上位计算机与多个PLC进行通信,必须连接一个RS232/422电平转换器,RS422采用平衡发送接收方式,它具有传输距离长、抗干扰能力强和多点通信能力,最多可以接32台PLC,如图1所示,每一台PLC都必须挂一个COM06单元进行RS422方式连接,所有的PLC与计算机间的通讯采用的是PLC上位机链接通信协议。

3.1硬件设置

RS232/422转换器的设置开关拨到422方式,OMRONPLC上的COM06通信板单元同样设置为422方式和四线制。

3.2参数设置

上下位机的通信波特率设置为9600,数据格式设置为E,7,2。

3.3节点设置

在PLC的DC6558单元中设置节点号00(初始值)~31(号机)。

4、用VisualC++6.0编写串行通信程序

本文的上位机链接通信程序是用VisualC++6.0编写的,主要是利用VC++中的一个通信控件来实现的。

首先利用MFCAppWizard(exe)建立一个基于对话框,支持Activex控件,命名为Transcomn的应用程序。然后在对话框中加入一些控件,其中那个电话形状的控件必须是在系统中注册过的MicrosoftCommunicationsControl,由它进行通讯时首先得设置它的一些属性如下。



属性设定值说明

CommPort1通讯协议为PLC上位机链接

通信,利用微机的串口1

InputMode0接收数据类型为文本形式

Rthreshold1每接收一个字符就产生一个事件

Settings9600,E,7,2参数依次为波特率、

奇偶检验数据位数、停止位数



5、程序编写

在程序中需添加的代码如下:

//TranscommDlg.cpp:implementationfile

BOOLCTranscommDlg::onInitDialog()

{

最后要在ClassWizard中添加变量和响应函数如下。



控制名称控制ID对应变量或函数

通讯地址文本框ID-ADDRESSm_address

DM区文本框ID-DMm_dmbox

LR区文本框ID-LRm_lrbox

HR区文本框ID-HRm_hrbox

IR区文本框ID-IRm_irbox

应答帧文本框ID-RESPONSEm_response

通讯控件ID-MSCOMMM-comm.

发送命令按钮ID-SENDonSend()



//TODO:Addextrainitializationhere

//打开通信端口1

m_comm..SetCommPort&n水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 电工 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved