OMRON欧姆龙PLC与VB、C#通过以太网(FinsTCP/FinsUDP)、串口(FinsCom/HostLink)、DTU通讯的DLL

本文主要是介绍OMRON欧姆龙PLC与VB、C#通过以太网(FinsTCP/FinsUDP)、串口(FinsCom/HostLink)、DTU通讯的DLL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://blog.sina.com.cn/s/blog_16d7d3ecb0102x3qi.html
1.0 通讯组件概述
通讯组件用于PC与可编程控制器(PLC)、智能仪表等进行数据通讯,适用于基于PC高级语言的工业自动化控制系统。组件采用动态链接库文件(*.DLL)的形式,在PC系统的项目工程里引用该组件,调用相应的属性与方法函数,即可快速实现PC与PLC的高效数据交换。
DLL通讯组件无须安装,直接复制到工程文件目录,方便打包安装部署;无须任何配置,直接调用函数,与应用开发无缝衔接;多年工程经验的软件团队开发测试,经过本公司及客户的海量实际工程应用检验,稳定可靠;采用稳定高效的内部协议,无须编写PLC内部程序配合,直接访问PLC的内存,通讯响应快速;内建动态管理的多独立线程连接,同时支持外部应用的多线程结构调用;兼容WINDOWS系统下的所有开发环境,包括各种版本的VB.NET、C#、VC++,以及DEIPHI 、VB、LabView等;支持几乎所有PLC的CPU自带通讯口、通讯扩展模块。

2.0 通讯组件名称及下载地址
FINS TCP 以太网: FinsTcp.DLL
FINS UDP 以太网: FinsUdp.DLL
FINS COM 串口: FinsCom.DLL
HOSTLINK 串口: HostLink.DLL
DTU透传FINS : TransFins.DLL
无法下载或它疑问可加微信lflzdh或者QQ532011903留言;

3.0 数据类型
通讯组件能对PLC的输入、输出端口,以及内部中间继电器存储区域、内部数据存储区域,以及扩展存储区域进行读写操作,支持以下数据类型:
INT16: 16位有符号整数;
UINT16: 16位无符号整数;
DINT32: 32位有符号整数;
HEX32: 32位16进制字符;
REAL32: 32位单精度浮点数据;
BIN16: 16位二进制字符串;
BCD16: 4字符BCD数字;

4.0 函数与参数
4.1 函数参数
[EntLink] 设置PC、PLC的通讯参数,建立与PLC的以太网连接;
参数: pcIP,String,本地地址,即PC端的IP地址
pcPort , Uint16, 本地端口,即PC端的网络端口,默认为0
plcIP , String ,远程地址,即PLC的IP地址
plcPort ,Uint16, 远程端口,即PLC的通讯端口
Handle, Integer ,DLL组件返回网络中PLC的连接句柄 *1
SN , String,调用序列号码,可联系本公司获取
OverTime,Uint16, 通讯超时时间限制,毫秒单位,默认1000
返回值: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的句柄 *1
返回值: Int16,函数执行结果,见4.3详细说明

[CmdRead] 批量读取PLC的数据;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
ValType, DataType, 数据类型枚举,见4.2详细说明
Address ,Uint16, 要读取的存储区域起始地址
Count ,Uint16, 要读取的数量,以ValType对应的数据类型为单位
ReData() , Object/String,读取到的数据(传地址方式的形式参数)
返回值: Int16,函数执行结果,见4.3详细说明

[CmdWrite] 批量写入数据到PLC;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
ValType, DataType, 数据类型枚举,见4.2详细说明
Address ,Uint16, 要写入的存储区域起始地址
Count ,Uint16, 要写入的数量,以ValType对应的数据类型为单位
Data() , Object/String,要写入PLC的数据(传地址方式的形式参数)
返回值: Int16,函数执行结果,见4.3详细说明

[Bit_Test] 以Bit(位)的方式读取一个位的状态;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
Address ,Uint16, 要读取的位所在的字或字节地址
Bit,Uint16, 要读取的位在Address中的位号码
State , Boolean,读取到的位的状态(传地址方式的形式参数)
返回值: Int16,函数执行结果,见4.3详细说明

[Bit_Set] 以Bit(位)的方式设置其状态为ON;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
Address ,Uint16, 要设置的位所在的字或字节地址
Bit,Uint16, 要设置的位在Address中的位号码
返回值: Int16,函数执行结果,见4.3详细说明

[Bit_Reset] 以Bit(位)的方式复位其状态为OFF;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
Address ,Uint16, 要复位的位所在的字或字节地址
Bit,Uint16, 要复位的位在Address中的位号码
返回值: Int16,函数执行结果,见4.3详细说明

[CmdReadString] 读取PLC中的字符串;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
Address ,Uint16, 要读取的存储区域起始地址
PlcDataSize ,Uint16, PLC内定义的存放字符的最大字符数
返回值: String,正常时为读到的字符串,异常时为空

[CmdWriteString] 写入字符串到PLC;
参数: Handle, Integer , 通过EntLink函数获取的网络中PLC的句柄 *1
Memory , PlcMemory, PLC数据区域枚举,见4.2详细说明
Address ,Uint16, 要写入的存储区域起始地址
PlcDataSize ,Uint16, PLC内定义的存放字符的最大字符数
Data ,String, 要写入到PLC的符数,长度应≤PlcDataSize
返回值: String,正常时为读到的字符串,异常时为空

[DataConvert] 数据类型转换函数;
参数: SourType,DataType, 数据类型枚举,见4.2详细说明
SourData , Object,需要转换的源数据
DestType , DataType, 数据类型枚举,见4.2详细说
DestData ,Object,转换后的目标数据(传地址方式的形式参数)
StartByte ,Int16,目标数据从源数据取数的起始字节(可选参数)
返回值: Int16,函数执行结果,见5.3详细说明。

 *1: Handle参数说明为方便同一应用程序连接多台PLC而设置的参数,在通讯组件外部调用时,定义一个全局变量,DLL在与PLC网络连接成功以后,自动分配PLC句柄数据,外部程序通过该句柄区分操作不同的PLC;变量为输入输出型参数,即传地址方式的形式参数,外部赋值无效。

4.2 枚举结构体参数说明:
–PlcMemory 要操作的PLC的内存区域类型:
CIO: 输入输出区域
WR: 内部中间继电器W区域
DR: 内部数据寄存器D区域
ER: 扩展数据E区域
HR: 保持区域H区域
–PrtType 串口通讯的校验方式
None: 无校验
Odd:奇校验
Even:偶检验

4.3 返回值说明:
0 执行成功;
-1 IP地址或端口参数错误;
-2 网络连接错错误;
-3 连接参数错误导致连接失败(如Rack>7 、Slot>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 连接序列号错误或测试次数超过试用限制;

5.0 组件使用步骤
5.1 基本步骤
a. 复制DLL、OCX文件到需要用到该组件的工程项目目录下;
b. 注册DLL、OCX文件(VS.NET平台的DLL程序集组件不用注册);
c. 在项目开发环境里引用DLL文件,不同的开发环境引用方式有区别,具体参见所用语言的帮助文档;
d. 参照例程定义、实例化通讯组件,编写相关通讯代码;

5.2 DLL注册方法
VS.NET平台的DLL程序集组件不用注册,ActiveX的COM组件(.dll/.ocx)须要在系统下注册才能正常使用,注册的方法主要有两种:
a. 代码注册:用Windows提供的Shell命令,Shell “regsvr32 \s ”+ 组件的完整路径及文件名称;
b. 手动注册:同时按下 “Win”键 +“R”建,在弹出的运行对话框中输入:
“Regsvr32 ” + 空格 + 组件的完整路径及文件名称,然后点“确认”按钮;
Windows7 及以上的系统下注册,建议对用户账户作以下设置:
控制面板->用户账号和家庭安全->用户账户->更改用户账户控制设置,把滑竿拖到最下面,即“从不通知”。
Windows7 及以上系统64位注册方法:
a. 在C:\Windows\SysWOW64\下新建目录(以 regdll 为例),复制需要注册的dll到这个目录下(以WinTcpS7.dll为例);
b. 点击开始,在“搜索程序和文件”里键入cmd,然后在搜索出来的cmd菜单上右键,以管理员的权限运行;
c. 此时cmd提示符为C:\Windows\System32,键入: Regsvr32 C:\Windows\System32\regdll\WinTcpS7.dll
d. 按回车键,然后提示注册成功(注意此时使用的是syswow64目录下的regsvr32.exe,而不是system32下的regsvr32.exe)。

6.0 技术支持
本公司提供各类PC与PLC通讯的解决方案,提供工业自动化软件定制开发服务,包括定制化的OPC数据服务器软件,以及自动化设备与生产线监控、数据采集项目等欢迎交流咨询。
任意一款DLL通讯组件,以及本公司的OPC数据服务器SDK开发包等工业数据服务产品都会随产品提供多种语言的例程,同时通过以下方式提供24小时技术支持:
E-Mail: liuflamp@126.com
QQ: 5320 11903
微信: lflzdh

这篇关于OMRON欧姆龙PLC与VB、C#通过以太网(FinsTCP/FinsUDP)、串口(FinsCom/HostLink)、DTU通讯的DLL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072333

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包