注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- PLC论坛 -- OMRON PLC论坛 -- PLC网络通信

中国工控网搜索:

 登陆:密码:  注册  密码

搜索:

发表人:wjun7610 发表时间:2007/10/13 17:49:00  

 

 本栏论题: 欧姆龙PLC全系列Host Link通信协议串口动态链接库DLL  [14788]

    一、最新欧姆龙PLC全系列Host Link通信协议串口动态链接库DLL(以下简称DLL),是为满足工业
   
    通信需要,针对工业领域要求上位机对PLC实时采集与控制的组态编程而设计。本DLL是采用
   
    Delphi语言开发的标准串口通讯库,具有以下特点:
    1)、实时性、可靠性好,可根据通信数据量自行调整通信时间;
    2)、适用于多PLC联网和上位机通信,满足多方面的需要;
    3)、函数接口功能全,操作简单;
    4)、附加实用转换与读取函数,易于快速开发(VC等非RAD开发环境的开发);
    5)、支持USB、PC扩展卡等扩展串口号;
    6)、支持多种操作系统win9x/win2000/winXP;
    7)、可在多种编程环境下使用,例如VB、VC、Delphi等开发环境。
   
    二、DLL函数说明
   
    1、打开串口
    Function ComOpen
   
    (nport,BaudRate,DataBits,Parity,StopBits:longint;User:Pchar):longint;stdcall;
    参数:nport: 打开串口号,取值为1~8,代表COM1~COM8;
    BaudRate:波特率,取值为1200、2400、4800、9600、19200、38400 (推荐使用9600或
   
    19200);
    DataBits:数据位,取值为5、6、7、8(推荐使用7或8);
    Parity: 校验位,取值为1(E)、2(O)、3(M)、4(S)、5(N),注括号里是校验位的英文缩
   
    写;
    StopBits:停止位,取值为1(1)、2(2)、3(1.5),注括号里是实际的停止位位数
    User:DLL授权用户名;
    返回值:长整型,操作成功返回1,否则返回0;打开串口不成功即返回0时的原因:1)、串口不存
   
    在或被占用; 2)、DLL试用过期; 3)、DLL授权注册不正确。
   
    使用举例:
    ComOpen(1,9600,7,1,1,'wjun') , 打开COM1口,并设定波特率=9600、数据位=7、校验位=E(偶
   
    校验)、停止位=1,授权用户='wjun'。
   
    2、关闭串口
    Function ComClose(nport:longint):longint;stdcall;
    参数:nport: 串口号,取值为1~8,代表COM1~COM8;
    返回值:长整型,操作成功返回1,否则返回0;
   
    使用举例:
    ComClose(1) ,关闭打开的COM1口。
   
    3、读取PLC的操作状态----{这很重要因为Host Link只有在监视或编程状态才可以进行写操
   
    作与强制操作,工控应用中应使用监视状态}
    . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   
    . . . . . . . . . . . . . . . . . .
    Function ComMS(nport,node:Longint):Longint;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    返回值:长整型,返回值:0:编程、1:运行、2:监视、3:读取错误;
   
    使用举例:
    ComMS(1,0),由串口1读取0号PLC的操作状态;
   
    4、改变PLC的操作状态
    Function ComSC(nport,node,State:longint):Longint;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    State:PLC状态参数,取值为0:编程、1:运行、2:监视;
    返回值:长整型,操作成功返回1,否则返回0;
   
    5、读取PLC的型号代码
    Function ComMM(nport,node:Longint):Pchar;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    返回值:Pchar(字符串),返回值:"Error":表示读取错误
   
    其他见下表:
   
    型号代码 PLC型号
   
    "01" C250
    "02" C500
    "03" C120
    "0E" C2000
    "10" C1000H
    "11" C2000H/CQM1/CPM2A/CPM2C/CPM1/CPM1A/SRM1(-V2)
    "12" C20H/C28H/C40H/C200H/C200HS
    "20" CV500
    "21" CV1000
    "22" CV2000
    "30" CP1H
    "40" CVM1-CPU01-E
    "41" CVM1-CPU11-E
    "42" CVM1-CPU21-E
   
    所有字符串返回值都以"@"为字符串数据终止符,有效字符串为"@"之前的所有字符串组;
   
    6、测试PC与PLC的通信是否可以有效执行
   
    Function ComTS(nport,node:longint):Longint;stdcall
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    返回值:长整型,测试成功返回1,否则返回0;
   
    7、PLC存储器数据的读取(IR/SR、LR、HR、AR、DM、T-PV值、T-状态值)
    Function ComWR(nport,node,address,Count:longint;Order:pchar):Pchar;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    address: 寄存器地址,取值请参欧姆龙PLC手册;
    Count: 读取寄存器个数,T-状态值的读取最大可读一次都120个,其它一次可读30个字的数据;
   
    Order:读取各区命令字符见下表:
   
    命令代码 读取区域
   
    "RR" IR/SR
    "RL" LR
    "RH" HR
    "RJ" AR
    "RD" DM
    "RC" T-PV值
    "RG" T-状态值
   
    返回值:字符串数据,字符串数据的终止符为"@";
   
    使用举例:
    ComWR(1,0,0,4,'RR') ,由COM1读取0000~0003四个寄存器的值,如返回值为
   
    “0001006403E809F0@”,则表示0000=0001, 0001=0064,0002=03E8,0003=09F0;
   
    1)、非T区的读取返回值为16进制字符串组,可以将返回值如上四位一组再转换成“0000~FFFF”
   
    的整数值;
   
    ---------- ---- ---
    读字符串序列如: | 0001 | 0064 | 03E8 | 009F | | @ |
    ---------- ---- ---
    IR区 0000 0001 0002 0003 终止符
   
    对T/C区:
   
    2)、如读T-PV值,例ComWR(1,0,0,4,'RC') 则返回BCD码组合数据,表示T的PV值(当前值)
   
    ---------- ---- ---
    读字符串序列如: | 0001 | 01000 | 1000 | 0159 | | @ |
    ---------- ---- ---
    T区 0000 0001 0002 0003 终止符
   
    3)、如读取T/C-状态值,例ComWR(1,0,0,4,'RG') 则返回0、1字符串组,表示T/C的完成状态
   
    ------------- ---
    读字符串序列如: | 1 | 0 | 0 | 1 | | @ |
    ------------- ---
    T区 0000 0001 0002 0003 终止符
   
   
    8、PLC存储器数据的写入(IR/SR、LR、HR、AR、DM)
    Function ComWW(nport,node,address:longint;Sendstr,Order:pchar):Longint;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    address: 寄存器地址,取值请参欧姆龙PLC手册;
    Sendstr:给PLC写入的字符串数据组;IR/SR区一次最多写30个字、LR区、HR区、AR区注意不要超出
   
    地址范围、
    DM值区一次最多写29个字。
   
    Order:写入各区命令字符见下表:
   
    命令代码 写入区域
   
    "WR" IR/SR
    "WL" LR
    "WH" HR
    "WJ" AR
    "WD" DM
   
    返回值:长整型,操作成功返回1,否则返回0;
   
    使用举例:ComWW(1,0,0,'0001006403E8009F','WR'),由串口1预置值0号PLC的IR区的0000=1,
   
    0001=100,0002=1000,0003=159。
   
    写入值为16进制字符串组
   
   
    写字符串序列如: | 0001 | 0064 | 03E8 | 009F |
    ---------- ----
    IR区 0000 0001 0002 0003
   
   
    9、PLC的线圈强制置位(IR、LR、HR、AR、TIM、TIMH、TIML、TMHH、CNT、CNTR)
    Function ComFBitset(nport,node,address,Bit:longint;Order:pchar):Longint;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    address: 寄存器地址,取值请参欧姆龙PLC手册,
    Bit: 强制置位字地址的位地址,取值0~15,TIM、TIMH、TIML、TMHH、CNT、CNTR强制置位时的
   
    取值总是0。
   
    Order:强制置位各区命令字符见下表:
   
    命令代码 强制置位区域
   
    "CIO" IR/SR
    "LR" LR
    "HR" HR
    "AR" AR
    "TIM" 定时器完成标志
    "TIMH" 高速定时器完成标志
    "TIML" 长定时器完成标志
    "TMHH" 特高速定时器完成标志
    "CNT" 计数器完成标志
    "CNTR" 可逆定时器完成标志
   
    返回值:长整型,操作成功返回1,否则返回0;
   
    使用举例:
    ComFBitset(1,0,0,0,'CIO'),强制置位(IR)0.00;
    ComFBitset(1,0,0,0,'TIM'),强制置位(T)0000。
   
    10、PLC的线圈强制复位(IR、LR、HR、AR、TIM、TIMH、TIML、TMHH、CNT、CNTR)
    Function ComFBitreset(nport,node,address,Bit:longint;Order:pchar):Longint;stdcall;
    参数:
    nport: 串口号,取值为1~8,代表COM1~COM8;
    node: PLC站号或节点号(单元号),取值为0~31;
    address: 寄存器地址,取值请参欧姆龙PLC手册;
    Bit: 强制复位字地址的位地址,取值0~15;TIM、TIMH、TIML、TMHH、CNT、CNTR强制复位时的
   
    取值总是0。
   
    Order:强制复位各区命令字符见下表:
   
    命令代码 强制复位区域
   
    "CIO" IR/SR
    "LR" LR
    "HR" HR
    "AR" AR
    "TIM" 定时器完成标志
    "TIMH"

以下是关于《欧姆龙PLC全系列Host Link通信协议串口动态链接库DLL》论题的回复(共5篇)

回复人:cn18show 

 回复时间:2009/9/18 11:04:00

支持(888) | 反对(997)

 

    送钱了,送钱了,易展成立五周年,50万大派送!官方网址:http://www.18show.cn/5/?m=189

回复人:xz00321 

 回复时间:2011/7/6 15:23:00

支持(880) | 反对(732)

 

    学习了

回复人:黃柏豪 

 回复时间:2014/8/19 12:06:00

支持(1304) | 反对(642)

 

    学习了

回复人:zgfczdh.cn 

 回复时间:2018/1/7 12:23:00

支持(585) | 反对(509)

 

    很全面,谢谢了!欧姆龙PLC

回复人:havegood 

 回复时间:2018/11/15 10:31:00

支持(656) | 反对(600)

 

    可以直接到这里下载源代码:
    http://blog.sina.com.cn/s/blog_16d7d3ecb0102x3qi.html

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳