原文:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x1z5.html
1.0通讯组件概述
该类通讯组件适用于基于PC高级语言的工业自动化控制系统,用于PC与可编程控制器(PLC)、智能仪表等进行数据通讯。组件采用动态链接库文件(*.DLL)的形式,在PC系统的项目工程里引用该组件,调用相应的属性与方法函数,即可快速实现PC与PLC的数据高效交换。
DLL通讯组件无须安装,直接复制到工程文件目录,方便打包安装部署;无须任何配置,直接调用函数,与应用开发无缝衔接;多年工程经验的软件团队开发测试,经过本公司及客户的海量实际应用检验,稳定可靠;采用稳定高效的内部协议,无须编写PLC内部程序配合,直接访问PLC的内存,通讯响应快速;内建动态管理的多独立线程连接,同时支持外部应用的多线程结构调用;兼容WINDOWS系统下的所有开发环境,包括各种版本的VB.NET、C#、VC++,以及DEIPHI 、VB、LabView等;支持几乎所有PLC的cpu自带通讯口、通讯扩展模块。
2.0通讯组件名称
2.1 以太网(S7协议)
S7-300/S7-400下载:WinTcpS7.DLL
S7-1200/S7-1500下载:WinTcpS7_1K.DLL
S7-200 Smart下载:WinTcpS7_Smart.DLL
S7-200 CP243下载:WinTcpS7_CP2.DLL
2.2 串口(PPI、MPI协议)
S7-300/S7-400: WinS7_MPI.DLL
S7-200/S7-200 Smart下载:WinS7_PPI.DLL
2.3 DTU模块(网路透传PPI、MPI协议)
S7-300/S7-400:TransS7_MPI.DLL
S7-200/S7-200 Smart:下载:TransS7_PPI.DLL
3.0数据类型
通讯组件能对PLC的输入、输出端口,以及内部中间继电器存储区域、内部数据存储区域,以及扩展存储区域进行读写操作,支持以下数据类型:
INT16:16位有符号整数;
UINT16:16位无符号整数;
DINT32:32位有符号整数;
HEX32:32位16进制字符;
REAL32:32位单精度浮点数据;
BIN16:16位二进制字符串;
CHAR8:8位单个字符(ASCII);
BYTE8:8位单字节数据;
[EntLink]设置PC、PLC的通讯参数,建立与PLC的以太网联接;
参数:pcIP,String,PC端的IP地址
pcPort,Uint16, PC端的网络端口,默认为0;
plcIP , String ,PLC的IP地址
plcPort ,Uint16,PLC的通讯端口
Rack ,Uint16,PLC的机架号码(只有西门子PLC有该参数)
Slot ,Uint16,PLC的cpu的插槽号码(只有西门子PLC有该参数)
Handle,Integer,DLL组件返回PLC的连接句柄,多PLC网络时通过该句柄区分不同的PLC
SN , String,调用系列号码,与DLL成对使用,可联系本公司获取
返回值: Int16,函数执行结果,见4.3详细说明。
[ComLink]设置PC、PLC的通讯参数,建立与PLC的串口联接;
参数:CommPort,Uint16,联接PLC的PC通讯端口
CommRate,Int32,与PLC通讯的速率
DataBit,Uint16,通讯数据位数
StopBit,Uint16,数据的停止位数
Parity,PrtType,数据校验方式
Station,PLC的站号码
OverTime,Uint16,通讯超时时间限制,毫秒单位
SN , String,调用系列号码,通过联系本公司获取
返回值: Int16,函数执行结果,见4.3详细说明
[DeLink]断开与PLC的连接;
参数:Handle,通过EntLink函数获取的网络中PLC的句柄
返回值: Int16,函数执行结果,见4.3详细说明
[CmdRead]读取多个PLC内存数据;
参数:Handle,通过EntLink函数获取的网络中PLC的句柄
Memory , PlcMemory,PLC数据区域枚举,见4.2详细说明
ValType, DataType,数据类型枚举,见4.2详细说明
Block ,Uint16,DB块的号码,非DB数据为0
Address ,Uint16,要操作的字的起始地址
Count ,Uint16,要操作的字的个数
ReData() , Object/String,读取到的数据(传址参数)
返回值: Int16,函数执行结果,见4.3详细说明
[CmdWrite]批量写入数据到PLC内存;
参数:Handle,要操作的字的个数
Data() , Object/String,要写入PLC的数据(传址参数)
返回值: Int16,函数执行结果,见4.3详细说明
[Bit_Test]以Bit(位)的方式读取其状态;
参数:Handle,通过EntLink函数获取的网络中PLC的句柄
Memory , PlcMemory,PLC数据区域枚举,见4.2详细说明
Block ,Uint16,要操作的位所在的字或字节地址
Bit,Uint16,要操作的位号码
State , Boolean,读取到的位的状态(传址参数)
返回值: Int16,函数执行结果,见4.3详细说明
[Bit_Set]以Bit(位)的方式设置其状态为ON;
参数:Handle,要操作的位号码
返回值: Int16,函数执行结果,见4.3详细说明
[Bit_Reset]以Bit(位)的方式复位其状态为OFF;
参数:Handle,要操作的位号码
返回值: Int16,函数执行结果,见4.3详细说明
[DataConvert]数据类型转换函数;
参数:SourType,DataType,数据类型枚举,见4.2详细说明
SourData,Object,需要转换的源数据
DestType , DataType,数据类型枚举,见4.2详细说明
DestData ,Object,转换后的目标数据(传地址参数)
返回值: Int16,函数执行结果,见5.3详细说明。
4.2枚举结构体参数说明:
--PlcMemory要操作的PLC的内存区域类型:
DI:数字输入端口;
DQ:数字输出端口;
MR:内部中间继电器M区域;
DR:内部数据寄存器V区域
DB:DB块数据区域;
--PrtType串口通讯的校验方式
None: 无校验
Odd:奇校验
Even:偶检验
Mark:特殊校验
4.3返回值说明:0 执行成功;-1IP地址或端口参数错误;-2网络连接错误;-3连接参数错误导致连接失败(机架:<7,插槽:<15);-4PLC握手连接异常;-5PLC握手无响应;-6PLC握手响应错误;-10 读数据超过最大数据量限制;-11 读数据时数据发送异常;-12 读数据时PLC响应超时;-13 读数据PLC返回格式错误;-14 读数据PLC返回数据错误;-15 读数据PLC返回数据校验错误;-18 PLC的网络句柄解析错误;-19 PLC的网络句柄数据错误;-20 写数据超过最大数据量限制;-21 写数据时数据发送异常;-22 写数据PLC响应超时;-23 写数据PLC返回格式错误;-24 写数据PLC返回数据错误;-25 写数据PLC返回数据校验错误;-28 PLC的网络句柄解析错误;-29 PLC的网络句柄数据错误;-31 数据转换时源数据处理错误;-32 数据转换时目标数据处理错误;-41 位操作函数的参数错误;-70 PLC内存区域的功能受限制;-80 PC系统中无网卡;-81 PC的IP地址格式错误;-82 PLC的IP地址格式错误;-83 PING命令返回错误;-99 连接序列号错误或测试次数超过试用限制;