学员中心 下载中心 联系我们 关于我们 留言反馈
设为首页
收藏本站
网站导航
  首 页 培训课程 企业培训 在线培训 学员中心 技术分享 下载中心 联系方式 实体公司 辅学器材
  资讯检索
 
 
  课程中心

PLC培训课程
西门子S7-200PLC培训
西门子S7-300PLC培训
西门子S7-1200PLC培训
三菱FX系列PLC培训
欧姆龙系列PLC培训
台达/永宏PLC培训
其他PLC培训
国产信捷等PLC培训
专项专题培训
三维建模与加工
UG/NX建模与自动编程
SolidWorks建模与加工
嵌入式/单片机培训
51/AVR等八位单片机系列
STM32系列嵌入式培训
软件 培训
AutoCAD应用班
AD/Protel培训
EPLAN 培训
机器视觉
标准课程
高级课程
自动化部品销售
PLC及周边成品

  资讯排行
1 造成PLC输出点烧坏
2 S7-200 Mod
3 自动化装备里面的工业
4 vb.net利用Se
5 TIA Portal
6 VB编写的MODBU
7 S7-200smar
8 用VB实现PLC与计
9 UG10.0怎么建立
10 在感性负载情况下提高
11 S7-200系列PL
12 UG/NX10的安装
13 S7-300PLC中
14 S7-300/400
15 S7-1200PLC
16 S7-1200原点回
17 光电测距的原理是什么
18 常见的三种温控系统
19 S7-1200/15
20 关于电气控制柜的几个
 
地区分布:滁州、安徽、宣城、池州、巢湖、六安、黄山、安庆、铜陵、芜湖、淮南、蚌埠、阜阳、宿州、合肥、马鞍山、淮北、澳门、北京、宁德、福建、泉州、漳州、龙岩、福州、南平、莆田、厦门、三明、兰州、甘肃、嘉峪关、金昌、宁夏、韶关、广东、潮州、梅州、河源、清远、珠海、汕尾、东莞、佛山、深圳、广州、汕头、湛江、江门、肇庆、云浮、阳江、茂名、中山、惠州、钦州、广西、北海、玉林、柳州、百色、贵港、梧州、柳州、桂林、南宁、贵州、遵义、六盘水、贵阳、海口、海南、三亚、琼山、文昌、琼海、万宁、通什、儋州、许昌、河南、三门峡、郑州、新乡、鹤壁、安阳、濮阳、焦作、商丘、洛阳、漯河、平顶山、南阳、信阳、济源、周口、驻马店、开封、沧州、河北、保定、石家庄、邯郸、邢台、衡水、秦皇岛、廊坊、承德、张家口、唐山、佳木斯、黑龙江、哈尔滨、齐齐哈尔、大兴安岭、大庆、鹤岗、牡丹江、伊春、宜昌、湖北、荆门、黄石、咸宁、荆州、鄂州、孝感、黄冈、十堰、随州、仙桃、天门、武汉、潜江、襄樊、益阳、湖南、常德、长沙、永州、怀化、岳阳、株洲、郴州、衡阳、湘潭、昭阳、张家界、长春、吉林、白城、吉林、四平、辽源、通化、白山、松原、扬州、江苏、苏州、无锡、常州、镇江、泰州、盐城、淮阴、宿迁、连云港、徐州、南京、南通、景德镇、江西、鹰潭、新余、萍乡、赣州、上饶、抚、宜春、九江、吉安、南昌、辽阳、辽宁、新、营口、盘锦、大连、锦州、铁岭、抚顺、丹东、鞍山、沈阳、本溪、朝阳、葫芦岛、赤峰、内蒙古、呼伦贝尔、呼和浩特、包头、银川、宁夏、石嘴山、西宁、青海、滨州、山东、青岛、日照、临沂、济宁、威海、莱芜、枣庄、菏泽、泰安、济南、烟台、潍坊、淄博、东营、德州、聊城、阳泉、山西、太原、朔州、晋城、临汾、大同、延安、陕西、宝鸡、渭南、铜川、西安、咸阳、上海、自贡、四川、南充、攀枝花、宜宾、泸州、绵阳、成都、德阳、天津、香港、乌鲁木齐、新疆、石河明、舟山、浙江、宁波、绍兴、金华、嘉兴、湖州、杭州、丽水、温州、重庆
 
 
用VB实现PLC与计算机间的串行通信
双击自动滚屏 恒邦自动化技术培训2017-09-25 阅读:339次 关注微信公众号 PLC958,获取最快捷,最有用的技术资讯
恒邦培训机构为您提供如下课程:三菱FX-3U初级班,垂询电话:0553-5848750,18055386918
三菱FX-3U初级班
恒邦培训机构为您提供如下课程:西门子S7-200PLC编程入门与提高班,垂询电话:0553-5848750,18055386918
西门子S7-200PLC编程入门与提高班
恒邦培训机构为您提供如下课程:人机界面(触摸屏)高级应用班,垂询电话:0553-5848750,18055386918
人机界面(触摸屏)高级应用班
恒邦培训机构为您提供如下课程:其他PLC定制课程,垂询电话:0553-5848750,18055386918
其他PLC定制课程

  在工业控制领域中,PLC作为一种稳定可靠的控制器得到广泛的应用。但它也有自身的一些缺点,即数据的计算处理和管理能力较弱,不能给用户提供良好的界面等。而计算机恰好能弥补PLC的不足,它不但有很强的数据处理和管理能力,而且能给用户提供非常美观而又易于操作的界面。将plc与计算机结合,可使系统达到既能及时地采集、存储数据,又可处理和使用好数据,两者结合的关键是plc与计算机之间的通信。本文以OMRON公司的CP1小型PLC为例,详细的讨论了PLC与计算机通信的原理和用VB如何实现PLC与计算机的通信。

通信原理与方法

  上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232C实现。上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和dm区的值等),PLC接收了上位的指令后,进行校验(fcs校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。否则,PLC拒绝向上位机传送数据。上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则,拒绝接收。

  由于CP1没有提供串行通信口,我们利用其提供的外设端口实现通信。PLC与计算机之间的连接是通过omron提供的专用电缆或者外接通讯卡来实现的,其硬件连接图如图1所示。

  

3 plc与计算机间的通信规约

  计算机与plc间的通信是以“帧”为单位进行的,并且在通信的过程中,计算机具有更高的优先级。首先,计算机向plc发出命令帧,然后,plc作出响应,向计算机发送回响应帧。其中命令帧和响应帧的格式如下:

  (1) 命令帧格式。为了方便计算机和plc的通讯,cpm1a对在计算机连接通信中交换的命令和响应规定了相应的格式。当计算机发送一个命令时,命令数据主准备格式如图2所示。

  

  其中@放在首位,表示以@开始,设备号为上位机识别所连接的plc的设备号。识别码为命令代码,用来设置用户希望上位机完成的操作,fcs为帧检验代码,一旦通信出错,通过计算fcs可以及时发现。结束符为“*”和cr回车符,表示命令结束。

  (2) 响应帧格式。由plc发出的对应于命令格式的响应帧格式如图3所示。

  

  其中,异常码可以确定计算机发送的命令是否正确执行。其它的与正文中的含义相同。正文仅在有读出数据时有返回。

4 通信程序的设计

  为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计算机与plc的通信, 计算机向 plc发出命令发起通信,plc自动返回响应。本文中采用vb来编写计算机与plc间的通讯程序。在vb中提供了通信控件—应用通信控件(mscomm),实现通过串行端口传送和接受的功能。

  下面介绍mscomm控件的属性:

  *commport:设定通信连接端口代号,程序必须指定所要使用的串行端口号,windows系统使用所设定的端口与外界通信。

  *portopen:设定通信口状态,若为真,通信端口打开,否则关闭。

  *settings:设定通信口参数,其格式是“bbbb,p

  ,d,s”,其中bbbb为通信速率(波特率),p为通信检查方式(奇偶校验), d 为数据位数,s为停止位数,其设定应与plc的设定一致。

  *input:将对方传送至输入缓冲区的字符读入到程序。

  *output:将字符写入输出缓冲区。

  *inbuffercount:传回接收缓冲区中的字符数。

  *outbuffercount:传回输出缓冲区中的字符数。

  *inputlen:设定串行端口读入字符串的长度。

  *inputmode:设定接收数据的方式。

  *rthreshold:设定引发接收事件的字符数。

  *commevent:传回oncomm事件发生时的数值码

  *oncomm事件:无论是错误或事件发生,都会触发此事件。

  (1) 控件参数的初始化。

  初始化程序如下:

  mscomm.comport=2 `使用串口com2

  mscomm.settings=“9600, e, 7, 2” `波特率9600,偶校验,7位数据位,2位停止位

  mscomm.portopen=true `打开通信端口,准备通信

  (2) 计算校验码fcs,计算fcs的vb自定义函数如下:

  function fcs(byval inputstr as string) as string

  dim slen, i, xorresult as integer

  dim tempfes as string

  slen=len(inputstr) `求输入字符串长度

  xorresult = 0

  for i = 1 to slen

  xorresult = xorresult xor asc(mid$(inputstr, i, 1)) `按位异或

  next i

  tempfes=hex$(xorresult) `转化为16进制

  if len(tempfes)=1then tempfes =“0”+tempfes

  fcs = tempfes

  end function

  (3) 计算机与plc通信程序。

  主要是一个自定义函数。

  function readdata(byval inputstr as string, byval num as integer) as string

  dim outputstr as string

  dim instring as string

  dim returnstr as string

  dim endstring as string

  dim fcsstring as string

  dim returnfcsstring as string)

  mscomm.inbuffercount=0

  outputstr=inputstr+fcs(inputstr)+“*” `给出命令帧

  mscomm.output=outputstr+chr$(13) `向plc传送命令帧

  do

  doevents

  loop while mscomm.inbuffercount 《 15

  instring=mscomm.input `获取plc的响应帧
结束码判断

  endstring = mid$(instring, len(instring) -

  num- 5, 2)

  if endstring = “13” then

  readdata = “error”

  exit function

  elseif endstring = “14” then

  readdata = “error”

  exit function

  elseif endstring = “15” then

  readdata = “error”

  exit function

  elseif endstring = “18” then

  readdata = “error”

  exit function

  elseif endstring = “a3” then

  readdata = “error”

  exit function

  elseif endstring = “a8” then

  readdata = “error”

  exit function

  end if

  `响应帧校验

  endstring = mid$(instring, 1, len(instring) - 4)

  returnfcsstring = mid$(instring,len(instring) - 3, 2)

  fcsstring = fcs(endstring)

  if fcsstring 《》 returnfcsstring then

  readdata = “error”

  exit function

  end if

  returnstr = mid$(instring,

  len(instring) - num - 3, num)

  readdata = returnstr

  end function

  从上面程序可以看到,计算机对PLC返回的响应帧要进行fcs校验,并利用异常码排除返回的异常数据,这样不但可以提高计算机获取信息的正确性,而且提高了计算机监控的实时性。

 
   好文推荐
1 造成PLC输出点烧坏的原因有哪些52
2 S7-200 Modbus RTU 通信312
3 vb.net利用SerialPort进行读取串口操作323
4 VB编写的MODBUS通讯上位机的简单程序354
5 S7-200smart系列PLC中SD卡的使用391
6 用VB实现PLC与计算机间的串行通信339
7 S7-200系列PLC编程中的上升沿和下降沿403
8 S7-300PLC中用系统变量和OB35做定时器397
9 S7-300/400PLC的计数器类型与使用768
10 S7-1200PLC如何实现模拟量数值与工程量数值之间的转换1975

18055386918、18055386926学PLC单片机上位机编程咨询PLC培训请学PLC单片机上位机编程 咨询嵌入式培训请 PLC编程与工控技术群
关键词:PLC培训 PLC编程培训 芜湖PLC培训 西门子PLC培训 三菱PLC培训 欧姆龙PLC培训 PLC网络培训 PLC教学视频 PLC教程 PLC编程实例 PLC编程入门
触摸屏培训 伺服系统培训 变频器培训 PLC编程软件下载 安徽PLC培训 学习PLC 设计师证书 PLC培训学校 马鞍山培训 合肥PLC培训 人机界面培训

© copyright all rights reserved
恒邦自动化培训中心 - 芜湖市恒邦科技有限公司 全部资讯 全部课程
地址:芜湖经济技术开发区科创中心C园 邮编:241006 TEL:0553-5848750
未经许可 以上内容不得转载 或用作商业用途 皖ICP备09005786号-1

PLC培训 PLC编程培训 芜湖PLC培训 西门子PLC培训 三菱PLC培训 欧姆龙PLC培训 PLC网络培训 PLC教学视频 PLC教程 PLC编程实例 PLC编程入门
触摸屏培训 伺服系统培训 变频器培训 PLC编程软件下载 安徽PLC培训 学习PLC 设计师证书 PLC培训学校 马鞍山培训 合肥PLC培训 人机界面培训