您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 欧姆龙PLC全系列HostLink通信协议串口动态链接库DLL
一、最新欧姆龙PLC全系列HostLink通信协议串口动态链接库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、打开串口FunctionComOpen(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、关闭串口FunctionComClose(nport:longint):longint;stdcall;参数:nport:串口号,取值为1~8,代表COM1~COM8;返回值:长整型,操作成功返回1,否则返回0;使用举例:ComClose(1),关闭打开的COM1口。3、读取PLC的操作状态----{这很重要因为HostLink只有在监视或编程状态才可以进行写操作与强制操作,工控应用中应使用监视状态}..............................................FunctionComMS(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的操作状态FunctionComSC(nport,node,State:longint):Longint;stdcall;参数:nport:串口号,取值为1~8,代表COM1~COM8;node:PLC站号或节点号(单元号),取值为0~31;State:PLC状态参数,取值为0:编程、1:运行、2:监视;返回值:长整型,操作成功返回1,否则返回0;5、读取PLC的型号代码FunctionComMM(nport,node:Longint):Pchar;stdcall;参数:nport:串口号,取值为1~8,代表COM1~COM8;node:PLC站号或节点号(单元号),取值为0~31;返回值:Pchar(字符串),返回值:Error:表示读取错误其他见下表:型号代码PLC型号01C25002C50003C1200EC200010C1000H11C2000H/CQM1/CPM2A/CPM2C/CPM1/CPM1A/SRM1(-V2)12C20H/C28H/C40H/C200H/C200HS20CV50021CV100022CV200030CP1H40CVM1-CPU01-E41CVM1-CPU11-E42CVM1-CPU21-E所有字符串返回值都以@为字符串数据终止符,有效字符串为@之前的所有字符串组;6、测试PC与PLC的通信是否可以有效执行FunctionComTS(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-状态值)FunctionComWR(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:读取各区命令字符见下表:命令代码读取区域RRIR/SRRLLRRHHRRJARRDDMRCT-PV值RGT-状态值返回值:字符串数据,字符串数据的终止符为@;使用举例: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区0000000100020003终止符对T/C区:2)、如读T-PV值,例ComWR(1,0,0,4,'RC')则返回BCD码组合数据,表示T的PV值(当前值)-----------------读字符串序列如:|0001|01000|1000|0159||@|-----------------T区0000000100020003终止符3)、如读取T/C-状态值,例ComWR(1,0,0,4,'RG')则返回0、1字符串组,表示T/C的完成状态----------------读字符串序列如:|1|0|0|1||@|----------------T区0000000100020003终止符8、PLC存储器数据的写入(IR/SR、LR、HR、AR、DM)FunctionComWW(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:写入各区命令字符见下表:命令代码写入区域WRIR/SRWLLRWHHRWJARWDDM返回值:长整型,操作成功返回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区00000001000200039、PLC的线圈强制置位(IR、LR、HR、AR、TIM、TIMH、TIML、TMHH、CNT、CNTR)FunctionComFBitset(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:强制置位各区命令字符见下表:命令代码强制置位区域CIOIR/SRLRLRHRHRARARTIM定时器完成标志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)FunctionComFBitreset(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:强制复位各区命令字符见下表:命令代码强制复位区域CIOIR/SRLRLRHRHRARARTIM定时器完成标志TIMH高速定时器完成标志TIML长定时器完成标志TMHH特高速定时器完成标志CNT计数器完成标志CNTR可逆定时器完成标志返回值:长整型,操作成功返回1,否则返回0;使用举例:ComFBitreset(1,0,0,0,'CIO'),强制复位(IR)0.00;ComFBitreset(1,0,0,0,'TIM'),强制复位(T)0000。11、PLC的多线圈强制置位复位(IR、LR、HR、AR、TIM、TIMH、TIML、TMHH、CNT、CNTR)FunctionComFRSset(nport,node,address:longint;Sendstr,Order:pchar):Longint;stdcall;参数:nport:串口号,取值为1~8,代表COM1~COM8;node:PLC站号或节点号(单元号),取值为0~31;address:寄存器地址,取值请参欧姆龙PLC手册;sendstr:给多线圈写入的值,该值为16进制字符串组成的16个字符串依下表次排列,TIM、TIMH、TIML、TMHH、CNT、CNTR强制置位复位时仅第15位是有效的其它将被忽略。-------------------------------字符串序列:|0|2|3|5|4|8|2|5|3|0|2|8|0|2|3|5|-------------------------------bit151413121110987654321016进制字符串所表示的处理意义参下表:0:不改变位状态2:复位3:置位4:强制复位5:强制置位8:取消强制置位/复位Order:强制置位复位各区命令字符见下表:命令代码复位区域CIOIR/SRLRLRHRHRARAR返回值:长整型,操作成功返回1,否则返回0;使用举例:ComFRSset(1,0,0,'0235482530280235','C
本文标题:欧姆龙PLC全系列HostLink通信协议串口动态链接库DLL
链接地址:https://www.777doc.com/doc-2363653 .html