西门子6ES7223-1HF22-0XA8介绍说明
一、概述
很多自动化工程师在实际应用中使用组态软件与PLC进行modbus通讯,组态软件作为主站PLC作为从站。组态软件来采集PLC数据使用这种方式是比较常见的。反向的利用modbus协议让PLC去读组态软件里的数据确有着特殊的意义,在某些工控场合也是很好解决方案。紫金桥软件在组态软件行业里推出了modbusserver,既紫金桥modbusserver可以作为modbus从机为其他软件和硬件设备提供数据,在这篇文章中对此功能我们详细地加以介绍。
二、S7-200Modbus主站的实现
1、S7-200Modbus 通信协议介绍
Modbus 是一种单主站的主/从通信模式。Modbus 网络上只能有一个主站存在,主站在 Modbus网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。在 S7-200 CPU通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口能。S7-200支持 Modbus 通信协议: S7-200CPU 上的通讯口 0 和 1 (Port 0 和 Port 1)通过指令库支持 Modbus RTU 主站模式。
2、S7-200Modbus主站的配置
西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。要使用 ModbusRTU 主站指令库,须遵循下列步骤:
⑴安装西门子标准指令库
⑵按照要求编写用户程序调用 Modubs RTU 主站指令库 Modbus RTU 主站功能编程使用 SM0.0 调用MBUS_CTRL 完成主站的初始化,并启动其功能控制:
具体参数的解释如下:
EN使能:必须保证每一扫描周期都被使能(使用SM0.0)
Mode模式:常为1,使能 Modbus 协议功能;为0 时恢复为系统 PPI 协议
Baud波特率:设为9600,要与从站波特率对应
Parity校验:校验方式选择 0=无校验
Timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫秒(1秒),允许设置的范围为1-32767。注意:这个值必须设置足够大以保证从站有时间响应。
Done完成位:初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作
Error初始化错误代码(只有在 Done 位为1时有效):
0=无错误
1=校验选择非法
2=波特率选择非法
3=模式选择非法
⑶调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;
如图1所示,具体参数设置如下:
Slave从站地址:可选择的范围 1-247
RW读写操作:0=读, 1=写
注意:1. 开关量输出和保持寄存器支持读和写功能
2. 开关量输入和模拟量输入只支持读功能
Addr读写从站的数据地址:选择读写的数据类型 00001至0xxxx-开关量输出10001至1xxxx-开关量输入
30001至3xxxx-模拟量输入
40001至4xxxx-保持寄存器
Count通讯的数据个数(位或字的个数)
注意: Modbus主站可读/写的大数据量为120个字(是指每一个 MBUS_MSG 指令)
DataPtr数据指针:1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
Done读写功能完成位
图1西门子Modbus RTU 主站协议库
三、紫金桥软件Modbus从站的实现
1、紫金桥modbusserver的设置
Modbus 服务器可以把紫金桥数据库中的点映射为Modbus 设备的HR寄存器,当前版本为3.0,支持串口和TCP/IP访问方式,支持HR区的读和写方式。也就是说支持03、06、16 号命令。
具体操作是先在紫金桥软件的安装目录中找到 ModbusSerSet.exe并运行。其中左侧为变量配置显示区,它分为三列,分别是序号、数据库位号和Modbus地址。后两列的意义是把某一个数据库位号和一个Modbus地址建立映射关系。再调出系统设置对话框配置从机地址、串口等参数或以太网端口号、数据格式等。
2、通讯过程
配置完成后,先运行紫金桥软件在紫金桥软件的安装目录中找到 ModbusServer.exe 并运行。
从上面的通讯过程看到,S7-200与紫金桥modbus server通讯的响应速度为毫秒级的
个人计算机(以下简称PC)具有较强的数据处理功能,配备着多种语言,若选择适当的操作系统,则可提供优良的软件平台,开发各种应用系统,特别是动态画面显示等。随着工业PC的推出,PC在工业现场运行的可靠性问题也得到了解决,用户普遍感到,把PC连入PLC应用系统可以带来一系列的好处。
1.PC与PLC实现通信的意义
把PC连入PLC应用系统具有以下四个方面作用:
1)构成以PC为上位机,单台或多台PLC为下位机的小型集散系统,可用PC实现操作站功能。
2)在PLC应用系统中,把PC开发成简易工作站或者工业终端,可实现集中显示、集中报警功能。
3)把PC开发成 PLC编程终端,可通过编程器接口接入PLC,进行编程、调试及监控。
4)把PC开发成网间连接器,进行协议转换,可实现PLC与其它计算机网络的互联。
2.PC与PLC实现通信的方法
把PC连入PLC应用系统是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表编制、趋势图生成、窗口技术以及生产管理等多种功能,为PLC应用系统提供良好、物美价廉的人机界面。但这对用户的要求较高,用户必须做较多的开发工作,才能实现PC与PLC的通信。
为了实现PC与PLC的通信,用户应当做如下工作:
1)判别PC上配置的通信口是否与要连入的PLC匹配,若不匹配,则增加通信模板。
2)要清楚PLC的通信协议,按照协议的规定及帧格式编写PC的通信程序。PLC中配有通信机制,一般不需用户编程。若PLC厂家有PLC与PC的专用通信软件出售,则此项任务较容易完成。
3)选择适当的操作系统提供的软件平台,利用与PLC交换的数据编制用户要求的画面。
4)若要远程传送,可通过Modem接入电话网。若要PC具有编程功能,应配置编程软件。
3.PC与PLC实现通信的条件
从原则上讲,PC连入PLC网络并没有什么困难。只要为PC配备该种PLC网专用的通信卡以及通信软件,按要求对通信卡进行初始化,并编制用户程序即可。用这种方法把PC连入PLC网络存在的唯一问题是价格问题。在PC上配上PLC制造厂生产的专用通信卡及专用通信软件常会使PC的价格数倍甚至十几倍的升高。
用户普遍感兴趣的问题是,能否利用PC中已普遍配有的异步串行通信适配器加上自己编写的通信程序把PC连入PLC网络,这也正是本节所要重点讨论的问题。
带异步通信适配器的PC与PLC通信并不一定行得通,只有满足如下条件才能实现通信。
1)只有带有异步通信接口的PLC及采用异步方式通信的 PLC网络才有可能与带异步通信适配器的PC互连。还要求双方采用的总线标准一致,都是RS-232C,或者都是RS-422(RS-485),否则要通过“总线标准变换单元”变换之后才能互连。
2)要通过对双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。
3)用户必须熟悉互联的PLC采用的通信协议。严格地按照协议规定为PC编写通信程序。在PLC一方不需用户编写通信程序。
满足上述三个条件,PC就可以与PLC互联通信。如果不能满足这些条件则应配置专用网卡及通信软件实现互联。
4.PC与PLC互联的结构形式
用户把带异步通信适配器的PC与PLC互联通信时通常采用如图7-12所示的两种结构形式。一种为点对点结构,PC的COM口与PLC的编程器接口或其它异步通信口之间实现点对点链接, 如图7-12a所示。另一种为多点结构,PC与多台PLC共同连在同一条串行总线上,如图7-12b所示。多点结构采用主从式存取控制方法,通常以PC为主站,多台PLC为从站,通过周期轮询进行通信管理。
图7-12 常用结构形式
a)点对点结构 b)多点结构
5.PC与PLC互联通信方式
目前PC与PLC互联通信方式主要有以下几种:
1)通过PLC开发商提供的系统协议和网络适配器,构成特定公司产品的内部网络其通信协议不公开。互联通信必须使用开发商提供的上位组态软件,并采用支持相应协议的外设。这种方式其显示画面和功能往往难以满足不同用户的需要。
2)购买通用的上位组态软件,实现PC与PLC的通信。这种方式除了要增加系统投资外,其应用的灵活性也受到一定的局限。
3)利用PLC厂商提供的标准通信口或由用户自定义的自由通信口实现PC与PLC互联通信。这种方式不需要增加投资,有较好的灵活性,特别适合于小规模控制系统。
本节主要介绍利用标准通信口或由用户自定义的自由通信口实现
PLC通信主要采用串行异步通信,其常用的串行通信接口标准有RS-232C、RS-422A和RS-485等。
RS-4855
RS-485是RS-422的变形,RS-422A是全双工,两对平衡差分信号线分别用于发送和接收,采用RS422接口通信时少需要4根线。RS-485为半双工,只有一对平衡差分信号线,不能发送和接收,少只需二根连线。
如图7-9所示使用RS-485通信接口和双绞线可组成串行通信网络,构成分布式系统,系统多可连接128个站。
图7-9 采用 RS-485的网络
RS-485的逻辑“1”以两线间的电压差为+(2~6)V表示,逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, TTL电平兼容,可方便与TTL 电路连接。。 由于RS-485接口具有良好的抗噪声干扰性、高传输速率(10Mbps)、长的传输距离(1200m)和多站能力(多128站)等优点,在工业控制中广泛应用。
RS-422/RS485接口一般采用使用9针的D型连接器。普通微机一般不配备RS-422和RS-485接口,但工业控制微机基本上都有配置。如图7-10所示RS232C/RS422转换器的电路原理图。
图7-10 RS23