VB、C#直接与S7-200Smart、S7-1200/1500、S7-300/400以太网、PPI、MPI通讯

原文:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x1z5.html
https://blog.csdn.net/dacong/article/details/79365696

2.0 通讯组件名称及下载地址http://blog.sina.com.cn/s/blog_16d7d3ecb0102y5db.html
AB PLC以太网(Reg.) 下载: MicroLogixTCP.DLL
AB PLC以太网(Reg.) 下载: CompactLogixTCP.DLL
AB PLC以太网(Tags) 下载: ControlLogixTCP_TAG.DLL
AB PLC以太网(Tags) 下载: CompactLogixTCP_TAG.DLL
松下PLC以太网 下载: NaisTcpFP.DLL
松下PLC串口 下载: NaisComFP.DLL
基恩士PLC以太网 下载: KvEntPlc.DLL
基恩士PLC串口 下载: KvComPlc.DLL

PLC通讯智能网关:MES服务对接,SQL数据库查询/插入,HTTP/FTP上传下载,ModbusTCP收发,MQTT发布/订阅–http://blog.sina.com.cn/s/blog_16d7d3ecb0102x33a.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位单字节数据;

4.0 函数与参数
4.1 函数参数

[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, Uint16, PLC的站号码
              OverTime,Uint16, 通讯超时时间限制,毫秒单位
              SN , String,调用系列号码,通过联系本公司获取
     返回值: Int16,函数执行结果,见4.3详细说明



   [DeLink]    断开与PLC的连接;
      参数:Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄
      返回值: Int16,函数执行结果,见4.3详细说明


   [CmdRead]   读取多个PLC内存数据;
      参数:Handle, Integer , 通过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, Integer , 通过EntLink函数获取的网络中PLC的句柄
                 Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
                 ValType, DataType, 数据类型枚举,见4.2详细说明
                 Block ,Uint16, DB块的号码,非DB数据为0
                 Address ,Uint16, 要操作的字的起始地址
                 Count ,Uint16, 要操作的字的个数
                 Data() , Object/String,要写入PLC的数据(传址参数)
       返回值: Int16,函数执行结果,见4.3详细说明



   [Bit_Test]   以Bit(位)的方式读取其状态; 
      参数:Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄

                Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
                Block ,Uint16, DB块的号码,非DB数据为0
                Address ,Uint16, 要操作的位所在的字或字节地址
                Bit,Uint16, 要操作的位号码
                State , Boolean,读取到的位的状态(传址参数)

     返回值: Int16,函数执行结果,见4.3详细说明



  [Bit_Set]    以Bit(位)的方式设置其状态为ON; 
     参数:Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄

               Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
               Block ,Uint16, DB块的号码,非DB数据为0
               Address ,Uint16, 要操作的位所在的字或字节地址
               Bit,Uint16, 要操作的位号码
     返回值: Int16,函数执行结果,见4.3详细说明



  [Bit_Reset]   以Bit(位)的方式复位其状态为OFF;
     参数:Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄
               Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
               Block ,Uint16, DB块的号码,非DB数据为0
               Address ,Uint16, 要操作的位所在的字或字节地址
               Bit,Uint16, 要操作的位号码
    返回值: 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 执行成功;
-1 IP地址或端口参数错误;
-2 网络连接错误;
-3 连接参数错误导致连接失败(机架:<7 ,插槽:<15);
-4 PLC握手连接异常;
-5 PLC握手无响应;
-6 PLC握手响应错误;
-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 连接序列号错误或测试次数超过试用限制;

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Seven Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值