- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PLC与计算机间的双线多线程快速串行通信.doc
1。上位机要能够通过PLC监控下层设备的状态
2 通行原理与方法上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232C实现。上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和DM区的值等),PLC接收了上位的指令后,进行校验(FCS校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。否则,PLC拒绝向上位机传送数据。上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则,拒绝接收。由于CPM1A没有提供串行通信口,我们利用其提供的外设端口实现通信。PLC与计算机之间的连接是通过OMRON提供的专用电缆CQM1-CIF01来实现的,其硬件连接图如图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 `使用串口Com2Mscomm.Settings=9600, E, 7, 2 `波特率9600,偶校验,7位数据位,2位停止位Mscomm.PortOpen=True `打开通信端口,准备通信(2) 计算校验码FCS,计算FCS的VB自定义函数如下:Function FCS(ByVal InputStr As String) As StringDim Slen, i, Xorresult As IntegerDim Tempfes As StringSlen=Len(InputStr) `求输入字符串长度Xorresult = 0For i = 1 To SlenXorresult = Xorresult Xor Asc(Mid$(InputStr, i, 1)) `按位异或Next iTempfes=Hex$(Xorresult) `转化为16进制If Len(Tempfes)=1Then Tempfes =“0”+TempfesFCS = TempfesEnd Function(3) 计算机与PLC通信程序。主要是一个自定义函数。Function ReadData(ByVal InputStr As String, ByVal Num As Integer) As StringDim OutputStr As StringDim In
您可能关注的文档
最近下载
- 珠宝首饰企业形象宣传.pptx
- 风力发电变桨.doc
- 《物理》课程思政教学案例(一等奖).docx VIP
- Module 5 Unit 1 We went to the Great Wall. (教学设计) -2024-2025学年外研版(一起)英语四年级上册.docx
- 安全生产教育培训教材(共55张课件).pptx VIP
- 必威体育精装版通用版小学三年级上册综合实践活动 第1课 我们的校园(课件).pptx VIP
- 二组LAMSON公司案例报告.docx
- 《鸦狐》小古文-文言文讲解分析解释.pptx VIP
- 高中政治课单元教学设计:《中国特色社会主义》探究.docx VIP
- 江苏开放大学2023年秋《组织行为学 060044》第二次作业参考答案.docx VIP
文档评论(0)