资源描述
东崎仪表与永宏PLC间的ModBus通讯优质资料
(可以直接使用,可编辑 优质资料,欢迎下载)
东崎仪表目前使用的类型有3种,这3种均为数码管显示表:
东崎仪表通讯时整数是按4321的次序传输,浮点数是按1234次序传输。
ModBus数据通讯时数据顺序补充说明:
永宏PLC的ModBus接收到的32位数据处理存放顺序是:先低字值后高字值,对字而言先高字节值后低字节值。所以永宏PLC在接收到数据时应按2143的格式进行调整方可还原数值的真实值,即字中的高低字节进行互换。
对于三相电压电流表中的2个字的变量三相电压倍率为0.1;而三相电流倍率为0.001。
对ModBus通讯可以通过USB转串口,串口转485模块连接,然后用串口调试工具按ModBus协议格式来检测通讯设备的数据响应情况,除ModBus通讯外其它通讯方式均可这样进行模拟测试。
用串口测试软件与东崎仪表的ModBus通讯数据截图如下:
串口通讯监控到的仪表响应的数据。
数值显示顺序为: 4 3 2 1
高高高低低高低低
DW9A-RC38B C三相电量表
01 03 04 B8 1E C5 40 EC 35 :传送顺序:1234 =〉40C5 1EB8(6.1599998)
01 03 04 CD CC CC 3D 90 71 :传送顺序:1234 =〉3DCC CCCD(0.1)
DS9-RC38A5 B 三相电流表
02 03 04 00 00 90 40 A4 C3 :传送顺序:1234 =〉4090 0000(4.5)
02 03 04 0A D7 23 3C 63 F2 :传送顺序:1234 =〉3C23 D70A(0.0099999998)
DS9W-A38B A 三相电压电流表
03 03 04 00 00 00 00 D9 F3 :传送顺序:1234 =〉0000 0000(0)
03 03 04 00 00 09 80 DE 03 :传送顺序:1234 =〉0000 0980(2432),长整数高低字互调
通讯参数列表
三相电量表参数(参数采用Float格式),仪表传出1234,PLC转换好后3412
要正确显示需调整为4321,方法为每个字中的字节交换。此表参数默认为Float.
0x000B(11):线电压Uab
0x000C(12):线电压Ubc
0x000D(13):线电压Uca
0x000E(14):相电流Ia
0x000F(15):相电流Ib
0x0010(16):相电流Ic
0x0014(20):总有功功率Ps
0x0018(24):总无功功率Ps
0x0 (32):总功率因素PFs
0x0022(34):有功电度(Kwh~Mwh),用0x005D参数识别单位
0x0023(35):无功电度 (Kvarh~Mvarch),用0x005D参数识别单位
以上均为2字长,浮点数传输。
0x005D(93):测量状态显示,D0=1为K有效,D1=1为M有效。
为1个字长,十六进制传输。
测试中线电压用相电压代替,其中A相接电压信号;
三相电流表参数(参数采用Long格式),仪表传出4321,PLC转换好后2143
要正确显示需调整为4321,方法为两字交换。此表参数可设为Float或Long.
0x0008(8):A相测量值(根据定货号电流或电压)
0x0009(9):B相测量值(根据定货号电流或电压)
0x000A(10):C相测量值(根据定货号电流或电压)
三相电压电流表参数(参数采用Long格式),仪表传出4321,PLC转换好后2143
要正确显示需调整为4321,方法为两字交换。此表参数默认为Long.
0x0003(3):A相电流
0x0004(4):B相电流
0x0005(5):C相电流
测试时用三相电压代替,其中B相接电压信号;
江苏科技大学
本 科 毕 业 设 计(论文)
学 院 电子信息学院
专 业 电气工程及其自动化
学生姓名 于进
班级学号 0745533140
指导教师 袁文华
二零一一年五月
江苏科技大学毕业论文
基于CP430的MODBUS通讯程序设计
Based on the CP430 MODBUS communication program design
江苏科技大学
毕业设计(论文)任务书
学院名称:电子信息学院专业:电气工程及其自动化
学生姓名:于进学号:0745533140
指导教师:袁文华职称:讲师
2011年2月28日
毕业设计(论文)题目:
基于CP340的MODBUS通讯程序设计
一、 毕业设计(论文)内容及要求(包括原始数据、技术要求、
达到的指标和应做的实验等)
1 提供条件:
PLC软件及相关MODBUS通讯的资料。
2 设计内容与要求:
(1) 学习、理解S7—300PLC软件的使用;
(2) 学习、理解MODBUS通讯的原理;
(3) 结合MODBUS通讯的原理,利用S7-300PLC软件编写出程序;
(4) 撰写论文,通过答辩。
二、完成后应交的作业(包括各种说明书、图纸等)
1。毕业设计论文一份(不少于1.5万字);
2。外文译文一篇(不少于5000英文单词);
3。 包含任务书、开题报告、中期检查和前三项内容的光盘一张。
三、 完成日期及进度
2011年3月21日至2011年6月17日,共13周。
进度安排:
3。14-3。28, 熟悉任务要求,查阅资料,翻译外文资料;
3.28-4.18, 学习、理解MODBUS通讯的原理;
4。18-4.30, 学习、理解S7-300PLC软件的使用;
5.1 -5。30, 利用S7—300PLC软件,编写程序;
5.31-6.29, 撰写毕业论文、答辩。
五. 主要参考资料(包括书刊名称、出版年月等):
1。 MODBUS国标参考资料.
2. 西门子S7-300/400PLC编程与应用, 刘华波, 何文雪, 王雪编著。
3. 西门子S7-300/400PLC控制系统设计与应用,陈章平等编著
系(教研室)主任:(签章)年月日
学院主管领导:(签章)年月日
摘要
计算机技术的飞速发展,使得现代工业生产和控制系统变得越来越复杂性,同时骑可靠性、实时性、精确性要求也越来越高。现场总线技术为控制系统性能提高提供了新的思路,发展现场总线技术的初衷是建立开放的控制通信网络.由于历史原因,不同系统的现场总线协议差异很大。不同总线协议应用范围也有所差异。
MODBUS协议定义了控制器能识别和使用的信息结构。广泛用于工业通信领域,其优点是实时性好,可靠性高,适用于小到中等规模的数据传输,如典型应用于的可编程控制器(PLC).协议采用主机轮询机制,主设备发出查询请求,要求从设备执行某种动作;从设备收到查询请求后,识别是否本地数据执行相应的动作,组织应答,将执行的状况或相关数据反馈到主设备。
本文在研究Modbus协议规则,详细分析Modbus协议的原理,然后通过西门子STEP7软件,运用CP430做Modbus从站程序,实现Modbus从站接受检验功能。
关键字:Modbus,CP430,从站,协议
Abstract
The rapid development of computer technology, makes the modern industrial production and control system is becoming more and more complexity while riding a reliability, real-time, and more and more is also high precision requirements. The Modbus technology for control system performance provides new ideas, improve the development of the Modbus technology intended to establish an open control communication network. Owing to historical reasons, the different systems Modbus agreement difference is very big. Different bus agreement application also different.
MODBUS agreement defines the controller can identify and use of information structure. Widely used in industrial communication field, its advantage is good real-time, high reliability, applicable to small to medium size of data transmission, such as the typical application in programmable controller (PLC)。 The protocol USES host polling mechanism, the main equipment and issue queries request, demand from equipment perform an action; After received from the device queries, identify whether some action local data execution, the organization response, will implementation status or related data feedback to the main equipment.
Based on the study, detailed analysis Modbus agreement rules the principle of Modbus agreement by Siemens, and then CP430 STEP7 software, using Modbus, slave stationprogram do realize Modbus functions slave station accept inspection。
Key word: Modbus, CP430, slave station, the agreement
目录
第一章 绪论5
1.1课题研究5
1.2国内外对于实现ModBus的现状6
1.2.1通过FPGA实现Modbus6
1。2.2通过51单片机实现Modbus6
1.2。3用过PLC实现Modbus6
1.3 本文的组织结构7
第二章 Modbus协议简介8
2。1协议简介8
2.1.1在Modbus 网络上转输9
2.1.2在其它类型网络上转输9
2.1。3 查询-回应周期10
2。1.4 主站/从站通信时序图11
2.1.5从站状态图11
2。2总体描述12
2.3两种传输方式13
2。3.1 RTU模式14
2.3.2 ASCII传输模式14
2.4 LRC校验16
2.5功能码定义17
2.5。1 功能码分类17
2。5.2 功能码定义表18
2。6 Modbus异常响应19
2。7本章小结20
第三章 PLC软件介绍及操作21
3.1 项目的新建21
3.2硬件组态22
3.3 CP340参数设置23
3.4编写程序25
第四章 程序运行流程图26
第五章 总结29
致 谢30
参考文献31
第一章 绪论
1。1课题研究
在现代化工业中,由于被控对象、测控装置等物理设备的地域分散性,以及控制与监控任务对实时性的要求,不同设别之间现场交互性息的传递越来越多。但传统的工业控制系统软件存在一些问题.不具备开放性,各个部分的联系过于紧密,使系统过于复杂,使系统的更新、扩展和升级变的非常困难,对系统任何一部分的修改都有可能对其他部分造成影响,从而导致大量且繁琐的软件和硬件的修改。传统的工业控制软件开发中出现的另一个主要问题是软件的重复开打,软件不能够复用,资源不能共享,造成大量的人力和物理资源的浪费.即使可以使用高级语言函数库使我们可以利用面向对象的继承等方法大量的重用源代码,但是这些复用只是对源代码级的复用而不是对可执行文件级的复用。
传统工业控制系统带来的不便,造成形成了大量的“孤岛信息”,但是,对于工业控制而言,各站点之间不是孤立的,它们必须可以相互配合、协调才能保证产品质量和实现连续生产.另外,上级管理网业需要与子站交互数据,以实现全局的监控和优化.然而,子站使采用不同开发平台和不用通讯协议组成的异构系统,可能由于不同的厂家和个位开发。要为每种协议写一个转换接口或驱动是比较繁琐的,特别是在站点和协议较多的时候。因此,怎样有效集成数据,避免信息孤岛的出现,是工业控制领域中常遇到的难点问题。
较为好的方法就是各站点都采用标准协议进行数据通讯,而不必为每一种协议开发一个通讯接口。目前这方面的协议比较多,MODBUS就是其中一种。ModBus 协议定义了一个控制器能认识使用的消息结构,而不管它们是通过何种网络进行通信的,它制定了消息域的格局和内容的公共格式,描述了一个控制器请求访问其它设备的过程,回应来自其它设备的请求,以及如何侦测并记录错误信息。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以完成信息和数据的交换与传送,使各种不同的公司和厂家的可编程顺序控制器(PLC)、RTU、SCADA 系统、DCS 或与兼容ModBus 协议的第三方设备之间可以连成工业网络,构建各种复杂的监控系统,并利于系统的维护和扩展,这个通讯协议已广泛被国内外各行业作为系统集成的一种通用工业标准协议。
1。2国内外对于实现ModBus的现状
目前Modbus协议实现方式多为单片机和PLC。
1.2.1通过FPGA实现Modbus
有用FPGA实现的,ModBus协议的FPGA功能设计采用自顶向下的设计方法,根据功能要求先设计出由若干个功能模块组成的顶层原理框图,再把各个功能模块细化为子模块,对较复杂的把子模块继续划分成下级子模块,但是FPGA是门级编程,编写速度不快,它是基于SRAM编程的,其编程信息需要存放在外部存储器盛,需外部存储器芯片,使用方法复杂,保密性差。
1。2。2通过51单片机实现Modbus
通过51单片机实现的,有单片机实现设计简单,程序编写简单,成本低,但单片机主要在仪表和简单的控制电路上应用,相对于PLC,单片机控制速度慢,功能不强,精度低,不适合工业上的运用。
1。2.3用过PLC实现Modbus
用PLC来实现ModBus的程序设计,CP340针对MODBUS协议自由组织程序代码与从站进行通讯,根据需要支持功能码1,2,3,4,5,6,15,16,CRC校验,灵活应用,减少PLC内存资源;针对MODBUS协议自由组织程序代码与主站进行通讯,根据需要支持功能码1,2,3,4,5,6,15,16,主站可查询DI/DO,MVV区,AIVV区,DB区(生成标准MODBUS寄存器地址),灵活应用,减少PLC内存资源。用CP340实现MODBUS简便,费用低廉,且复制性强。
1.3 本文的组织结构
本文介绍了Modbus协议原理,STEP7软件如何实现CP430做Modbus从站,并得出仿真结果。
第一章 、绪论。接受Modbus协议的产生和国内外发展趋势.
第二章 、Modbus协议简介.介绍Modbus协议规范,协议报文结构、两种传输模式的消息帧结构,功能定义,纠错方法.
第三章 、PLC软件介绍.介绍STEP7软件的使用,各参数配置方法,主要功能函数实现方法。
第四章 、程序运行流程图。绘制出整个程序运行的流程图。
第五章 、总结。总结本课题所工作,及通过本课题的收获、讨论如何进行下一步工作。
第二章 Modbus协议简介
2.1协议简介
Modbus 协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信.它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的.它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式.
当在一Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上, 包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法.
2.1.1在Modbus 网络上转输
标准的Modbus 口是使用一RS—232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网.
控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器.
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应.Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。
从设备回应消息也由Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
2。1.2在其它类型网络上转输
在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。
在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应.同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器
2.1.3 查询-回应周期
图2—1 主-从 查询-回应周期表
(1)查询
查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。
(2)回应
如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应.数据段包括了从设备收集的数据:象寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码.错误检测域允许主设备确认消息内容是否可用。
2.1。4 主站/从站通信时序图
图2-2主站/从站通讯时序
2.1.5从站状态图
图2—3从站状态图
对上面的状态图的一些解释:
l 状态 “空闲" = 没有等待的请求。这是电源上电后的初始状态。
l 当收到一个请求时,子节点在处理请求中要求的动作前检验报文包。不同的错误可以发生于: 请求的格式错,非法动作,…… 当检测到错误时,必须向主节点发送应答。
l 当要求的动作完成后,单播报文要求必须格式化一个应答并发往主节点。
l 如果子节点在接收到的帧中检测到错误, 则没有响应返回到主节点。
l 任何子节点均应该定义并管理Modbus 诊断计数器以提供诊断信息.通过使用Modbus诊断功能码,可以得到这些计数值。
2。2总体描述
MODBUS协议定义了一个与基础通信层无关的简单协议数据单元(PDU).特定总线或网络上的MODBUS协议映射能够在应用数据单元(ADU)上引入一些附加域。
图2-4通用MODBUS帧
启动MODBUS事务处理的客户机创建MODBUS应用数据单元。功能码向服务器指示将执行哪种操作.
MODBUS协议建立了客户机启动的请求格式。
用一个字节编码MODBUS数据单元的功能码域。有效的码字范围是十进制1-255(128-255为异常响应保留)。当从客户机向服务器设备发送报文时,功能码域通知服务器执行哪种操作。
向一些功能码加入子功能码来定义多项操作.
从客户机向服务器设备发送的报文数据域包括附加信息,服务器使用这个信息执行功能码定义的操作。这个域还包括离散项目和寄存器地址、处理的项目数量以及域中的实际数据字节数。
在某种请求中,数据域可以是不存在的(0长度),在此情况下服务器不需要任何附加信息。功能码仅说明操作。
如果在一个正确接收的MODBUS ADU中,不出现与请求MODBUS功能有关的差错,那么服务器至客户机的响应数据域包括请求数据.如果出现与请求MODBUS功能有关的差错,那么域包括一个异常码,服务器应用能够使用这个域确定下一个执行的操作。
例如,客户机能够读一组离散量输出或输入的开/关状态,或者客户机能够读/写一组寄存器的数据内容。
当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应.
图2—5Modbus事物处理(无差错)
图2-6Modbus事物处理(异常响应)
2.3两种传输方式
控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
2.3。1 RTU模式
当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
代码系统
•8位二进制,十六进制数0。。。9,A.。.F
•消息中的每个8位域都是一个两个十六进制字符组成
每个字节的位
•1个起始位
•8个数据位,最小的有效位先发送
•1个奇偶校验位,无校验则无
•1个停止位(有校验时),2个Bit(无校验时)
错误检测域
• CRC(循环冗长检测)
2。3。2 ASCII传输模式
当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8Bit字节都作为两个ASCII字符发送。这种方式的主要优点是字符发送的时间间隔可达到1秒而不产生错误.
代码系统
•十六进制,ASCII字符0...9,A。..F
•消息中的每个ASCII字符都是一个十六进制字符组成
每个字节的位
•1个起始位
•7个数据位,最小的有效位先发送
•1个奇偶校验位,无校验则无
•1个停止位(有校验时),2个Bit(无校验时)
错误检测域
•LRC(纵向冗长检测)
2.3。2.1 ASCII报文帧
由发送设备将Modbus 报文构造为带有已知起始和结束标记的帧.这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。
报文帧的地址域含有两个字符。
在 ASCII 模式, 报文用特殊的字符区分帧起始和帧结束。一个报文必须以一个‘冒号’ ( : ) (ASCII 十六进制3A )起始,以‘回车-换行’(CR LF) 对(ASCII十六进制0D 和0A) 结束。
对于所有的域,允许传送的字符为十六进制0–9, A–F (ASCII 编码)。设备连续的监视总线上的‘冒号' 字符。当收到这个字符后,每个设备解码后续的字符一直到帧结束.
报文中字符间的时间间隔可以达一秒。如果有更大的间隔,则接受设备认为发生了错误。
下图显示了一个典型的报文帧
必然的, Modbus ASCII 帧的最大尺寸为513 个字符
图2-7ASCII报文帧
2.3.2.2 ASCII传输模式状态图
图2-8ASCII传输状态图
上面状态图的一些解释:
l “空闲" 态是没有发送和接收报文要处理的正常状态.
l 每次接收到 ”:” 字符表示新的报文的开始.如果在一个报文的接收过程中收到该字符,则当前地报文被认为不完整并被丢弃。而一个新的接收缓冲区被重新分配。
l 检测到帧结束后,完成LRC 计算和检验。然后,分析地址域以确定帧是否发往此设备,如果不是,则丢弃此帧。为了减少接收处理时间,地址域可以在一接到就分析,而不需要等到整个帧结束。
2.4 LRC校验
使用ASCII模式,消息包括了一基于LRC方法的错误检测域。LRC域检测了消息域中除开始的冒号及结束的回车换行号外的内容。
LRC域是一个包含一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。
LRC方法是将消息中的8Bit的字节连续累加,丢弃了进位。
LRC简单函数如下:
static unsigned char LRC(auchMsg,usDataLen)
unsigned char *auchMsg ; /* 要进行计算的消息 */
unsigned short usDataLen ; /* LRC 要处理的字节的数量*/
{ unsigned char uchLRC = 0 ; /* LRC 字节初始化 */
while (usDataLen-—) /* 传送消息 */
uchLRC += *auchMsg++ ; /* 累加*/
return ((unsigned char)(-((char_uchLRC))) ;
}
2.5功能码定义
2。5.1 功能码分类
有三类MODBUS功能码.它们是:
(1)公共功能码
l l 是较好地被定义的功能码,
l l 保证是唯一的,
l l MODBUS组织可改变的,
l l 公开证明的,
l l 具有可用的一致性测试,
l l MB IETF RFC中证明的,
l l 包含已被定义的公共指配功能码和未来使用的未指配保留供功能码。
(2)用户定义功能码
l l 有两个用户定义功能码的定义范围,即65至72和十进制100至110。
l l 用户没有MODBUS组织的任何批准就可以选择和实现一个功能码
l l 不能保证被选功能码的使用是唯一的。
l l 如果用户要重新设置功能作为一个公共功能码,那么用户必须启动RFC,以便将改变引入公共分类中,并且指配一个新的公共功能码.
(3)保留功能码
l 一些公司对传统产品通常使用的功能码,并且对公共使用是无效的功能
2。5.2 功能码定义表
ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。下表2-1是ModBus的功能码定义。
表2-1 功能码定义表
功能码
名称
作用
01
读取线圈状态
取得一组逻辑线圈的当前状态(ON/OFF)
02
读取输入状态
取得一组开关输入的当前状态(ON/OFF)
03
读取保存寄存器
在一个或多个保持寄存器中取得当前的二进制符
04
读取输入寄存器
在一个或多个输入寄存器中取得当前的二进制值
05
设置单线圈
强制一个逻辑线圈的通断状态
06
预设单寄存器
把具体二进制值装入一个保持寄存器
07
读取异常状态
取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态
08
回送诊断校验
把诊断校验报文送从机,以对通信处理进行评鉴
09
编程(只用于484)
使主机模拟编程器作用,修改PC从机逻辑
10
控询(只用于484)
可使主机与一台正在执行程序任务从机通信.探寻该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送
11
读取时间计数
可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时
12
读取通信事件记录
可使主机检索每台从机的Modbus事物处理通信事件记录。
13
编程(184/384 484 584)
可使主机模拟编程器功能修改PC从机逻辑
14
探寻(184/384 484 584)
可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才发送
15
强置多线圈
强置一串连续逻辑线圈的通断
16
预置多寄存器
把具体的二进制值装入一串连续的保持寄存器
17
报告从机标识
可使主机判断编址从机的类型及该从机运行指示灯的状态
18
(884和MICRO 84)
可使主机模拟编程功能,修改PC状态逻辑
19
重置通信链路
发生非可修改错误后,是从机复位于已知状态,可重置顺序字节
20
读取通用参数(584L)
显示扩展存储器文件中的数据信息
21
写入通用参数(584L)
把通用参数写入扩展储存文件,或修改之
22—64
保留扩展功能备用
65-72
保留以备用户功能所用
留作用户功能的扩展编码
73-119
非法功能
120- 127
保留
留作内部作用
128- 255
保留
用于异常应答
ModBus网络只是一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。表2-2是ModBus各功能码对应的数据类型。
表2-2功能码与数据类型对应表
代码
功能
数据类型
01
读
位
02
读
位
03
读
整型、字符型、状态字、浮点型
04
读
整型、状态字、浮点型
05
写
位
06
写
整型、字符型、状态字、浮点型
08
N/A
重复“回路反馈”信息
15
写
位
16
写
整型、字符型、状态字、浮点型
17
读
字符型
2.6 Modbus异常响应
当客户机设备向服务器设备发送请求时,客户机希望一个正常响应。从主站询问中出现下列四种可能事件之一:
l 如果服务器设备接收到无通信错误的请求,并且可以正常地处理询问,那么服务器设备将返回一个正常响应。
l l 如果由于通信错误,服务器没有接收到请求,那么不能返回响应。客户机程序将最终处理请求的超时状态。
l l 如果服务器接收到请求,但是检测到一个通信错误(奇偶校验、LRC、CRC、...),那么不能返回响应。客户机程序将最终处理请求的超时状态.
l l 如果服务器接收到无通信错误的请求,但不能处理这个请求(例如,如果请求读一个不存在的输出或寄存器),服务器将返回一个异常响应,通知用户错误的本质特性。
异常响应报文有两个与正常响应不同的域:
功能码域:在正常响应中,服务器利用响应功能码域来应答最初请求的功能码。所有功能码的最高有效位(MSB)都为0(它们的值都低于十六进制80).在异常响应中,服务器设置功能码的MSB为1。这使得异常响应中的功能码值比正常响应中的功能码值高十六进制80。
通过设置功能码的MSB,客户机的应用程序能够识别异常响应,并且能够检测异常码的数据域。
数据域:在正常响应中,服务器可以返回数据域中数据或统计表(请求中要求的任何报文)。在异常响应中,服务器返回数据域中的异常码。这就定义了产生异常的服务器状态。
2.7本章小结
本章介绍了Modbus协议内容,两种传输方式,功能码及异常响应,使之更加深刻的理解Modbus通讯协议。
第三章 PLC软件介绍及操作
3.1 项目的新建
双击SIMATIC管理器图标进入SIMATIC Manager(SIMATIC管理器),弹出新项目小窗口,单击“Next”按钮,选择CPU模块型号、需要生成的逻辑块和输入项目名称。
项目建立完成后,鼠标单击SIMATIC管理器左侧的项目名称,选择“插入新对象”选择“SIMATIC S7-300站”,既将此项目下插入一个S7-300站。
图3-1 项目新建插入站点
3.2硬件组态
选中插入的站,SIMATIC管理器右侧将出现“硬件”文件,双击或用鼠标右键选择“打开对象”将打开“硬件组态编辑器”,如图3。2所示。
图3-2 硬件组态编辑器
图3。2左侧为编辑区,右侧为“目录”命令。进行硬件组态时的各种模块既从左侧目录中选择.如图3.2所示,从左侧目录中选择“CPU 315—2DP”“CP 340—RS232”.硬件组态设置完成后,编译并保存.
3。3 CP340参数设置
双击CP340所在的槽位,会弹出如图3-3所示的对话框,点击左下角的“Parameter"按键,配置CP340.
图3-3 CP340参数配置
点击“Parameter”后出现图3-4,弹出CP340参数设定窗口,在“Protocol"处选择“ASCII”。
图3-4 CP340参数设定窗口
双击图3—4中“Protocol”处,弹出“Protocol”设置窗口,如图3—5。在这里设置CP340通讯口波特率、数据格式、奇偶校验方式.
图3—5 “Protocol”设置窗口
3.4编写程序
保存编译后在SIMATIC管理器右侧S7程序栏下会有一个“块”文件夹,点击会看到SIMATIC管理器左侧里自动生成一个空的组织块OB1,点击
展开阅读全文