发表于:2012-02-25 21:52:02
楼主
iFIX3.0是Intellution Dynamics自动化软件产品家族中的HMI/SCADA最重要的组件,它是基于WindowsNT/2000平台上的功能强大的自动化监视与控制的软件解决方案。该系列软件以SCADA(Supervisory Control And Data Acquisition)为核心,实现包括监视、控制、报警、保存和归档数据、生成和打印报告、绘图和视点创建数据的显示形式等多种功能。它们包括数据采集、数据管理和集成3个基本功能。
1 西门子S7-200 PLC及其网络通信功能
SIMATIC S7-200系列PLC具有结构小巧、运行速度高、价格低廉、多功能、多用途等特点,具有极高的性能价格比;适合控制点分散控制系统和中小型控制系统。
S7-200的网络通信功能:S7-200系列PLC通信接口是9针RS-485标准串行接口,可通过PC/PPI电缆与计算机联接,也可通过通信扩展模块与其它PLC及设备连成网络。
(1) SIMATIC S7-200网络(PPI协议)
采用PPI(Point to point interface)协议,S7-200 PLC能以19.2Kbit/s的数据传输率与PC机(通过PC/PPI电缆)及SIMATIC的编程设备、TD200文本显示器、HMI(操作员控制和监视)设备以及其它的S7-200 PLC相连。
(2) 自由口模式(用户可编程接口协议)
采用可编程自由口通信模式(free port mode),在用户程序中进行编程与配置,可以使S7-200 PLC与任何需要的设备如变频器、调制解调器、打印机、条码阅读器、电机驱动器、终端或其它S7-200 PLC进行灵活地通信。
(3) PROFIBUS-DP网络
利用EM277通信扩展模块,S7-200 PLC只能作从机使用。它提供了与过程现场总线系统PROFIBUS-DP之间良好的接口能力,能与所有的SIMATIC系统组件直接通信,进入到快速(12Mbit/s波特率)的现场总线领域。
2 西门子S7-200 PLC与iFIX3.0通讯
西门子S7-200 PLC可以通过PC/PPI电缆直接与上位PC机连接,建立通讯,但是由于PPI协议是西门子公司未公开的协议,iFIX3.0的公共驱动程序不包括针对PPI协议的S7-200 PLC的驱动,因此西门子S7-200 PLC与iFIX3.0通讯必须开发特定的驱动程序,增加了开发周期和开发费用。利用可编程自由口通信模式(free port mode)在PLC上通过编程转换为公开类似Modbus的协议,通过固定对应方法建立S7-200 PLC与iFIX3.0的通讯。
3 西门子S7-200 PLC自由口通讯程序
本程序包括一组子程序和中断程序,通过S7-200自由端口功能来产生从Modbus RTU,使PLC作为从站,上位PC机作为主站。子程序和中断程序用来初始化和处理Modbus的请求。有两个程序必须加到用户主程序中,一个程序用来在第一次扫描时初始化Modbus,另一个程序检查一个M位,和处理已有的Modbus请求。第二个程序放在靠近用户主程序结束的地方(就在MEND之前),以便数据只在扫描结束时发生改变。
***程序结构***
主程序:
NETWORK 1
LD SM0.1
CALL COMM_INIT
NETWORK 2
LD M31.7
CALL RW_CALL
R M31.7, 1
子程序和中断程序是:
SBR100 初始化 Modbus RTU 驱动器.
SBR101 处理 Modbus 请求和传送响应
SBR102 处理 Modbus 功能1和2
SBR103 处理 Modbus 功能3和4
SBR104 处理 Modbus 功能5
SBR105 处理 Modbus 功能 6
SBR106 处理 Modbus 功能 15
SBR107 处理 Modbus 功能 16
SBR101 产生错误响应2
SBR102 初始化 CRC 表
SBR103 计算 CRC
INT150 静止线定时器到时处理
INT151 在等待静止线定时器到时期间收到字符的处理
INT152 接收请求的首字符.
INT153 接收请求的其余字符
INT154 静止线定时器到时后结束请求
INT155 发送完后复位静止线寻找
本程序允许一个或多个S7-200连接到主Modbus。它利用S7-200的自由通信口功能来执行Modbus RTU协议。Modbus RTU协议是一个二进制协议。Modbus RTU协议传送8位二进制字符,每个字符也包括一个起始位,一个或两个停止位(S7-200提供一个停止位),一个可选择的奇偶校验位。Modbus RTU协议是一个主从协议。这就意味着一个网络配置包括一个主设备(一台主机)和一个或多个从设备。每个从设备有不同的地址。主机给一个从机发送请求,然后等待从机的响应。从机将回答此请求已收到或出现错误。如果请求没有正确接收到,则有象奇偶错或CRC(校验和)错这一类的传送错误。此时从机将不响应,主机必须在等待一个适当的时间后重新发送请求。以下讲述的程序设定S7-200为9600波特,偶校验它可以通过在SBR 50里修改通信口设置而改变Modbus RTU协议使用CRC(循环冗余检验)来进行出错校验。
在此程序中S7-200 PLC存储器区域对应Modbus地址:(程序无Q区域,控制输出用M区)
I0.0->10001,I0.1->10002,……I0.7->10008,I1.0->10009……
VW0->40001,VW2->40002,VW4->40003,VW6->40004……
M0.0->00001,M0.1->00002,……M0.7->00008,M1.0->00009……
4 在上位PC机设置iFIX3.0与西门子S7-200PLC通讯
在上位机安装iFIX的I/O驱动库中的MB1驱动(针对Modbus协议),进入iFIX3.0系统配置(SCU)环境,启动MB1驱动,建立iFIX3.0与西门子S7-200 PLC连接。
首先,添加通道(Channel0,Channel1……)在此项中设置通讯方式、通讯接口、通讯速率、通讯数据格式等;在此方案中选波特率9600,8位数据,1位停止位,偶校验(9600 8E1)。
然后,在通道下添加设备(Device0,Device 1……),在此项中与设备连接,设置设备地址,数据重发次数,延迟时间等;注意设备地址必须与通讯程序中地址一致。
最后,再在设备中添加数据块(DataBlock0,DataBlock1……),通过与上述通讯程序设定的对应关系:
I0.0->10001,I0.1->10002,……I0.7->10008,I1.0->10009……
VW0->40001,VW2->40002,VW4->40003,VW6->40004……
M0.0->00001,M0.1->00002,……M0.7->00008,M1.0->00009……
添加各数据块。
注意,以上各步骤中把Enable框选上,iFIX3.0与西门子S7-200 PLC通讯完成。
5 结语
iFIX3.0与西门子S7-200 PLC通讯问题主要是协议方面的问题,而S7-200 PLC提供的可编程自由口通信模式(free port mode)给用户提供了解决问题的途径。同时S7-200 PLC自由口通信协议可解决很多通讯方面的问题。