计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计
1、引 言
PLC是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,因而在工业控制中得到了广泛的使用。
随着工业的自动化程度的提高,对PLC的应用提出了更高的要求:更快的处理速度,更高的可靠性,控制与管理功能一体化。控制与管理一体化也就是将计算机信息处理技术,网络通信技术应用于PLC,使PLC用于下位分散控制,用计算机提供图形显示界面,同时对下位机进行监控。本文讨论的是上位计算机与欧姆龙CPM2A型PLC的通信与监控设计。
2、 通信协议
2.1 CPM2A 的通信链接方式
CPM2A有三种通信联系方式:上位链接系统、同位链接系统、ComPoBus通信系统。工厂自动化系统中常把三种系统复合起来一起使用来实现工厂自动化系统要求的多级功能。复合型PLC网络中,上位链接系统处于最高位,负责整个系统的监控优化。
上位机与CMP2A的通信有两种方式:上位机命令与PLC通信命令。上位机命令方式上位机处于主动,命令由上位机发往PLC。采用上位机命令方式能方便的实现上位机对PLC的监控。上位机与CPM2A采用RS-232端口进行通信,串口接线如图1所示。
2.2 CPM2A的上位通信协议
CPM2A的数据是以帧的格式发送的,当通信命令小于一帧时,发送格式如图2所示。其中正文最多122个字符。当命令块内容大于一帧时,由起始帧、中间帧、及结果帧组成。起始帧最多131个字符,中间帧及结束帧最多128个字符。起始帧由设备号、命令码、正文、 FCS、和分界符构成。中间帧有正文、FCS、分界符组成。结束帧由正文FCS、结束符组成。上位机每发送完一帧,在收到PLC发回的分界符后再发送下一帧。
命令块中的校验码FCS是8位二进制数转换成的2位ASCⅡ字符。这8位数据是将一帧数据中校验码前的所有字符的ASCⅡ码位按连续异或的结果。转换成字符时,按照2位十六进制数转换成对应的数字字符。
PLC接收到上位机发送的命令帧后,自动产生响应块,响应块的格式与图2格式类似,只是在命令码后面多了两位的响应码,响应码表示了上位机命令的出错信息。响应码00表示PLC正常完成上位机命令。
3、PLC命令的编写
在CPM2A的上位链接系统中,PLC接收指令并被动地给上位机返回响应块。所以作为下位机的PLC不需要编写通信程序。
上位机与PLC的通信不能改变PLC的输入状态。为了通过上位机改变PLC的输出,在编写下位机的程序时就要利用PLC的工作位,通过上位机改变工作位的状态来改变PLC的输出,从而达到上位机对PLC输出的控制。
如图3所示,在梯形图中加入了工作位3.00,4.00。系统正常工作时3.00,4.00置OFF,当需要实现上位机控制时,把3.00置ON,使PLC的输入端0.00失效,通过工作位4.00的通断来控制系统的输出。
4 、编写上位机通信程序
在上位链接系统中,通信一般都是由上位机发起的,按PLC标准通信进行连接。上位机给PLC发送操作指令,PLC按照指令执行相应的操作,同时给上位机返回数据。串口通信流程如下图。
4.1 编写上位通信程序
编写通信程序可以采用高级语言或者汇编语言,下面给出的例子是用Delphi编写的上位机与CPM2A型PLC通信程序。通信采用标准通信模式。
//程序初始化:
procedure TForm1.Init_PLC(nPort:integer);
begin
if MSComm.PortOpen then
MSComm.PortOpen:=False;
MSComm.Commport:=nPort;
//通信端口选择
MSComm.Settings:=‘9600,e,7,1’;
//1位起始位,7位数据位,偶效验,2位停止位,9600bps
MSComm.PortOpen:=True;//打开串口
end;
//FCS校验
funcTIon FCS(s:string):variant;
var
i,len,tmpVar:integer;
DataCheck:byte;
f1,f2:byte;
begin
f1:=0;
f2:=0;
DataCheck:=0;
len:=length(s);
tmpVar:=0;
for i:=1 to len do
begin
DataCheck:=ord(DataCheck) xor ord(s[i]);
end;
f1:=DataCheck and $0f;
f2:=DataCheck and $f0;
f2:=f2 shr 4;
result:=inttostr(f2)+inttostr(f1);
end;
// 调用MSComm控件实现PLC通信
procedure TForm1.HandShake_PLC;
var
tmpByte1,tmpByte2:char;
tmpVar:string;
s:string;
begin
Init_PLC(1);
&nbs
p; s:=Edit1.text;
tmpVar:=s+inttostr(FCS(s))+‘*’+chr(13);
MSComm.RThreshold:=0;
MSComm.Output:=tmpVar;
//向串口输出数据
sleep(1000);// 延时
tmpVar:=MSComm.Input;
//从串口读取数据
tmpByte1:=tmpVar[5];
tmpByte2:=tmpVar[6];
if tmpByte1=chr(48)& tmpByte2:=chr(48);
//校验码等于00,PLC正常完成操作
then
begin
Showmessage(‘发送的数据正确’);
else
Showmessage(‘发送的数据有问题’);
//end;
end;
4.2 实现上位机对PLC的监控
编写通信程序建立了上位机与PLC的连接。在PLC的任何工作方式下都可以通过”读”指令读取PLC的状态。从而对PLC进行监视。只有当PLC的工作方式为监视的情况下才可以通过上位机对PLC进行控制。所以在需要上位机实施控制的系统里面PLC都必须设置为监视工作方式。
上位机只需要设置PLC的相应工作位就可以实现对PLC的控制。下图为PLC上位机控制过程。图a表示PLC 正常工作时输出由输入0.00控制,当需要把PLC的控制转由上位机控制时,只需要通过向PLC输入@00RR00030001,置3.00为ON,切断0.00的通路,这样输出10.00就转由4.00控制,当输入@00WR00040001时,4.00为ON,输出位10.00产生输出。
5、 结束语
本文探讨了实现PLC的上位链接系统通信的方法,以及要实现上位机对下PLC控制的PLC编程。通过上位机对PLC的监视与控制,可用方便的实现工厂生产过程的自动化监控。
责任编辑:gt
计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计相关推荐
- 计算机中c语言的应用特点,计算机中C语言的应用特点分析
计算机中C语言的应用特点分析 阮鹏飞 (荆楚理工学院湖北·荆门448000) 摘要在计算机的应用过程中,C语言是一门十分常用的语言.和其他的语言相比较而言,C语言是一门面向过程的语言,其中的各个环节的 ...
- java plc通信协议_Java实现计算机与OMRONPLC串口通信.pdf
Java实现计算机与OMRONPLC串口通信 · 84 · 工业仪表与 自动化装置 2010年第 1期 Java实现计算机与oMRONPLC串口通信 吴兴军.胡汉春 (北京西动车所:西南交通大学机械工 ...
- plc有与计算机的通讯请求时,自由口模式下PLC与计算机的通信
本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC从站各寄存器的读/写操作. ----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过R ...
- 计算机考试有一个超链接题,职称计算机考试题库Dreamwaver考点:链接到文件或网页...
一.建立到文件或者网页的超链接 1.选定要显示为超链接的文字或者图形 2.选择下列操作之一,打开[插入超链接]对话框 单击[常用]工具栏的[插入超链接]按钮 单击[插入]菜单下的[插入超链接]命令 使 ...
- 计算机一级考试做网络题,全国计算机等级考试一级考试练习题附答案
全国计算机等级考试一级考试练习题附答案 为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是小编搜索整理的全国计算机等级考试一级考试练习题附答案,供参考练习,预祝考生们考出自己理想的成绩 ...
- 上位机与PLC通讯及OPC数据采集实践一
上位机与PLC通讯及OPC数据采集实践一 背景 由于项目的需要,上位机(工控机)需要与PLC通讯(AB的PLC)通过PLC控制相关的设备:另一部分需要做一个数据采集程序从一个OPC服务器(此服务器作为 ...
- 计算机等级必须在学校考吗,计算机等级考试可以跳过一级考二级吗
摘要: 计算机等级考试可以跳过一级考二级吗为你介绍可以,考生不受年龄.职业.学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况报考.但在选择... 可以,考生不受年龄.职业.学历等背景的限 ...
- 计算机大师高德纳权威著作《计算机程序设计艺术》影印版精装版已经入库,即将上市!
<计算机程序设计艺术>系列著作对计算机领域产生了深远的影响.这一系列堪称一项浩大的工程,自 1962年开始编写,计划出版 7卷,目前已经出版了 4卷.<美国科学家>杂志曾将这套 ...
- 计算机二级试题库office选择题,全国计算机二级MSoffice选择题题库2017
(1)下面描述中不属于数据库系统特点的是 A.数据共享 B.数据完整性 C.数据冗余度高 D.数据独立性高 [答案]C [解析]数据库系统的特点为高共享.低冗余.独立性高.具有完整性等,C错误. (2 ...
最新文章
- mysql 主从同步检查_MySQL主从复制一致性检测
- MessagePack:一种高效二进制序列化格式
- 空间mysql升级_MySQL升级的3种方法
- 这个 MySQL bug 让我大开眼界
- POSIX条件变量API函数
- 用一个参数化的模型来投影点
- 电池成本涨幅“离谱” 新能源车企涨声一片
- ubuntu-Linux系统读取USB摄像头数据(uvc)
- ping 和 远程桌面 与防火墙的关系
- TensorFlow中的优化算法
- IDEA 顶部导航栏(Main Menu)不见了怎么办
- 真正免费的国外PHP建站空间
- IDEA映射文件去掉黄色和绿色背景
- layui 日期选择器 laydate详细参数用法大全,一键复制粘贴
- 财务自由?这样做微信开发可以吗?
- 颜色帮你缓解职场压力 给你的心情换个色
- 排序算法(一)——冒泡排序原理及Java实现
- 译|深入理解Metaspace
- 【C++】秋招实习面经汇总篇
- 【轻松一刻】艾薇儿《I Fell In Love With The Devil》MV