吉安西门子PLC代理商
吉安西门子PLC代理商
吉安西门子PLC代理商
西门子PRODAVE通信软件读写PLC字节函数
1. PRODAVE 简介
PLC具有较高的可靠性,一般用来执行现场的控制任务,但是它的人机接口功能较差。
PLC与个人计算机(PC)通过通信连接起来,用PC作为上位计算机,实现系统的监控、人机接口,以及与上一级网络(例如工业以太网)的通信等功能,可以使二者的优势互补,组成一个功能强、可靠性高、的控制系统。因此在工业控制系统中,PC与PLC之间的通信是较常见和较重要的通信之一。
实现计算机与PLC通信较简便的方法是使用计算机上运行的组态软件,例如西门子公司的WinCC或国产的组态软件。组态软件与现场设备(例如PLC)之间的通信程序是由组态软件生产厂家开发的,用户只需要设置一些通信参数,就可以实现上位计算机与现场设备之间的通信,通信的双方都不需要编写通信程序。但是每个系统都需要购买组态软件,费用较高。有的组态软件不能满足用户的某些特殊要求。
S7-300400的MPI(多点接口)和S7-200的PPI(点对点接口)用于西门子公司控制产品之间的通信,例如安装在PC上的STEP7编程软件与PLC之间的通信,但是这些通信协议均未公开。
PRODAVE是用于PC与S7系列PLC之间的数据链接通信的工具箱,可以用于S7-200、S7-300400、M7和C7等西门子PLC。通过下列硬件,可以在S7PLC与PC之间方便地建立数据链接(见图14-59):
1)用于PC的MPI通信处理器,例如CP5511、CP5611和CP5613,通信速率较高12Mbits。
2)用于S7-300400的PCMPI适配器或USBMPI适配器。
3)用于S7-200的PCPPI编程电缆。
图14-59 PC与PLC的连接方式
用PRODAVE来实现上位计算机与S7系列PLC的通信是很方便的。PRODAVE的动态链接库(DLL)提供了大量的基于Windows操作系统的DDL函数,供用户解决PLC与PC 之间的数据交换和数据处理问题。可以在VB或VC等编程环境中调用这些函数,来建立或断开通信连接,读写CPU的系统存储器,方便地实现计算机与S7-300400的点对点通信。
PRODAVE有以下特点:
1)使用简单方便,编程人员不需要熟悉复杂的通信协议,通过调用PRODAVE提供的动态链接库(DLL)中的函数就可以实现通信。
2)上位计算机用通信函数直接读写PLC中的数据,不用编写PLC的通信程序。
3)如果使用PCMPI适配器或用于PC的通信处理器作通信接口,它们同时还可以兼作编程软件与PLC的通信接口。
PRODAVE的使用方法可以参阅随书光盘中的有关用户手册。
PRODAVE的函数分为基本函数、数据处理函数和电话服务函数(TeleService Functions)。
基本函数用于建立、断开和PC与PLC的连接,以及读、写PLC中的各种数据。数据处理函数用于PC中用户数据的转换和处理,与PC和PLC之间的通信没有直接的关系。电话服务函数用于PC通过电话线与PLC建立连接,本节主要介绍基本函数。
2. 建立与断开连接的函数
1)load_tool用于建立上位机与PLC的连接,初始化适配器,检查是否安装了驱动程序,初始化参数地址,选中的通信接口。
2)unload_tool用于在通信结束时断开PC与PLC的连接,否则可能引起上位机死机,或者造成上位机系统的异常状况。
3)new_ss用来PLC与PGPC的连接,也可以用它来重新建立已经关闭的连接。如果只有一个连接,不必使用new_ss函数。
3. 读取PLC字节的函数
函数X_field_read用于读取PLC的X地址区中从地址no开始的amount个字节的数据,将它们存放在PC的数组变量value中。其中的X可取e(输入I)、a(输出Q)和m(位存储器M)。e和a是德语的缩写。
4. 写PLC字节的函数
这类函数将存放在PC的数组变量value中的数据写入PLC的X地址区从地址no开始的amount个字节中,X可以取a和m。
5. 读写数据块的函数
1)d_field_read 读取PLC的db数据块中从地址no开始的amount个字节的数据,将它们存放在PC的数组变量value中。
2)d_field_write将存放在PC的数组变量value中的amount个字节的数据,写入PLC的db数据块中从地址no开始的区域。
3)db_readwrite 函数中各变量的意义与d_field_readwrite的类似,区别在于amount 以字为单位。
6. 读定时器计数器字
X_field_read 读取从地址 no 开始的 amount 个定时器或计数器的当前值,将它们存放在PC的数组变量value中。X可以取t(定时器)和z(计数器)。z是德语的缩写。
7.写计数器字
z_field_write 将存放在PC的数组变量value 中的 amount个字的数据,写入PLC从地址no 开始的的计数器区,改写的是计数器的当前值。
8.读写混合数据
mix_read较多可以读取PLC的20个数据,mix_write较多可以向PLC写20个数据。需要指明每个数据的地址区类型、长度(字节或字)和地址。
9. 标志状态测试
mb_bittest 检测PLC内地址为no的标志(即位存储器)字节MB中的*bitno位。返回值value与该位的01状态相同。
10.置位复位标志
mb_setbit和mb_resetbit分别将PLC中地址为no的MB的*bitno位置位和复位。
11. 其他通信函数
ag_info用于读取PLC的信息,ag_zustand用于读取PLC的状态,db_buch用于检测某数据块是否存在。
12. 数据处理函数
PRODAVE为了方便用户,在komfort.dll中还提供了与通信无关的数据处理函数,例如位数据与字节数据的转换函数,浮点数格式转换函数,高低字节交换函数,位测试函数和错误信息函数等。
作者曾在某水电站控制系统中将PRODAVE用于S7-300与上位计算机的通信。