CP1E Host link协议与触摸屏控制变频器实例通讯的实例

工控自动化技术文摘:MT500系列触摸屏与PLC的一机多屏连接方式
MT500系列触摸屏与PLC的一机多屏连接方式
&&&&触摸屏对每一台它所支持的PLC都可以支持【主机-副机】通信方式。所有的触摸屏一台连着一台,而第一台和PLC连接。和PLC直接相连接的第一台触摸屏必须【多台人机互连】设置为【主机】,所有其它的不跟PLC直接相连的应【多台人机互连】设置为【副机】,它们可以通过第一台触摸屏来获得PLC数据。理论上对连接的触摸屏的数目是没有限制的,但是连接的触摸屏超过3台时,系统响应的速度可能会较慢。& &&&&在多台触摸屏互连时,下载到主机和副机的工程程序其内容都是一样的,都是在EB500组态软件中设计好的,但是在下载时,下载到主机(即和PLC连接的第一台触摸屏)的程序必须把【系统参数】中的【多台人机互连】设为【主机】,下载到其它触摸屏的程序则应在此设为【副机】。& 注意:所有的相连的触摸屏必须设置为相同的速率,当触摸屏被设置为【副机】时,触摸屏将会忽略它和PLC&之间的通信参数(串口,波特率,&...),而始终使用PLC【RS-232】口来接收从第一台触摸屏传来的数据.如下所示:&&&&&&&关于多台人机互连的通信参数的设置请参看【系统参数】的【PLC设置】部分内容。&& &&& 主机和PLC之间的连接方式和一般情况下的连接方式是一样的,因此可以参照附录I的连接方式来连接主机和PLC。而从机的连接方式有2种情况。&& &&&&多台触摸屏互连的方式有两种,一种是PLC为RS-232方式,另一种为RS-485方式。其原理图都是一样的,如下图所示:&&&
&&& 1、连接PLC的通信口为RS-232(例如OMRON的PLC).示意图如下:&& 5&& &&&&&&&&&&&&&&&&&&&&&& 接各种类型PLC触摸屏之间互联的连线方式:&&
&&& 2、连接PLC的通信口为RS-422、485(例如三菱PLC),示意图如下&& &&&&&&&&&&&& 接各种类型PLC触摸屏之间互联的连线方式:&& 连线方式1:&&
连线方式2:&&
EasyView&MT500系列触摸屏与PLC的“一屏多机”连接方式&& &&& EasyView&MT500系列触摸屏支持“扩展”的地址操作模式,可以直接支持与PLC的“一屏多机”的连接方式,即一台触摸屏人机界面可以直接操作与之通过RS422/485相连的多台PLC的寄存器地址,必需注意的是这多台的PLC必须属于相同的厂牌,或者支持相同的通讯协议和寄存器地址类型。有关”扩展”的地址操作模式请参考说明书的第7章“系统参数”里的论述,本章主要介绍如何进行“一屏多机”系统的硬件连接。&& &&& 首先需要说明的是:并不是所有的能够与MT500触摸屏进行单机通讯的PLC都可以支持“一屏多机”系统的连接,因为在一些PLC控制器的通讯协议中不包含PLC站号的信息,或者虽然有站号信息但不支持组成多台互联的网络系统。目前,支持与MT500触摸屏构成“一屏多机”的PLC类型有如下几种:&&
&&& 由于RS232无法支持多点(multi-drop)的连接方式,所以当“一屏多机”系统中的PLC没有RS422/485端口时,必须配置通讯适配器将RS232转换成为RS422/485信号才能连接。具体的系统硬件连接随着采用的PLC的不同而不同,下面是两个通用的图例:&& 1.&&&&PLC为RS232通讯端口:&&&&&& 2.&&&&PLC为RS422/485端口&&&&&& &&& 各个厂商的通讯协议支持的站点数量不同,请不要超过他们限制的范围,另外各个PLC生产厂家都会提供RS232-RS422/485的转换器,或者将专用接口转换为RS422/485的通讯适配器,您可以根据厂家的建议来组成以上的“一屏多机”系统,也可以采用自己选择的转换器和适配器来连接,但需要注意参考硬件的使用手册,以避免接线的错误造成无法通讯。&& 下面是以OMRON&系列PLC为例的两种具体接线图:&& 1.&&&&利用HostLink协议通过PLC或模块的RS232端口经RS232-RS422/485转换器连接&&&
&&& 说明:OMRON的HostLink协议允许最大连接32个站点,NT-AL001-E&Link适配器是OMRON提供的一种RS232-RS422通讯转换器,它需要5V的直流电源才能工作,电源可以来自外部供应,也可以来自某些提供电源针脚的通讯模块,请注意使用时的有关拨码开关的设定,推荐的设定如下:&& DIP&Switch&Setting:&& Pin&1:&ON&& Pin2:&ON&& Pin3:&OFF&& Pin4:&OFF&& Pin5:&OFF&& Pin6:&ON&& 具体拨码开关的含义请参考OMRON的使用说明书。&& &&& 经过转换后的RS422就可以实现多台的并接了,为了方便客户的连接,OMRON也提供了一个内部并接的分配器3G2A9-AL001-E&Link&Adapter,请参考OMRON的型录选购。&& &&& 在触摸屏的软件设定中,只需要改变通讯口类型为RS485,并设定使用扩展地址方式,就可以利用一台触摸屏操作不同站号的PLC中的地址,具体设定如下:&& EasyBuilder500软件设置:&&
2.&&&&利用HostLink协议通过PLC或模块的RS422/485端口连接&&&&&& 说明:请注意有关通讯模块的拨码开关的设定,可以通过拨码开关设定选择四线式或者两线式,如果选择两线式,则必须在软件中需要设定PLC类型为OMRON&(485&2W)。&
公司名称:
联 系 人:
电  话:
传  真:
地  址:
苏州工业园区万盛街28号邮政大楼7层
邮  编:
主  页:
威纶通相关文摘:
中华工控网 制作发布级别: 探索解密
发帖数量: 137 个
工控威望: 160 点
下载积分: 289 分
在线时间: 25(小时)
注册时间: 最后登录:
图片: =600) window.open('/attachment/Mon_58_5c433b4ffaf5782.jpg');" onload="if(this.width>'600')this.width='600';if(this.height>'3000')this.height='3000';" >
Omron_HostLink.dll V3.2 HostLink通信协议串口通讯动态链接库DLL(以下简称DLL),是为满足工业通信需要, 针对工业领域要求上位机对欧姆龙系列PLC通讯实时采集与控制的组态编程而设计。 本DLL是采用Delphi语言开发的标准串口通讯库,具有以下特点: 1)、遵循欧姆龙HostLink通信协议; 2)、支持多串口并发操作,支持多线程串口通讯,将串口通讯对主程序的影响降至最低; 3)、实时性、可靠性好,通用性强; 4)、适用于多PLC(下位机)联网和上位机通信,满足多方面的需要; 5)、函数接口功能全,操作简单,支持欧姆龙PLC的绝大部分地址的读写功能函数; 6)、支持USB、PC扩展卡等扩展串口号; 7)、支持多种操作系统win9x/win2000/winXP(标准Win32 DLL); 8)、易于快速开发(VC等非RAD开发环境的开发); 9)、更新原有函数调用方式采用数组调用数据发生与接收,初学者快速入门; 10)、可在多种编程环境下使用,例如VB、VC、Delphi、PB、Labview、易语言等开发环境; 11)、扩展了函数功能读取下位机中的双字、单精度浮点等类型数据,更加符合工业自动化领域的工控软件的开发。 软件版本更新及相关说明: Omron_HostLink.dll V3.2 HostLink通信协议串口通讯链接库,实现了对欧姆 龙全系列PLC的HostLink协议的支持, (删减了一些特权指令)wangjun于2010年在原有omron.dll V2.0版基础上的更新版,重写了函数结构,采用数据接收 和发送缓冲区(数组)方式传递,读出和写入单元数据使用更方便。对于16位整数和32位整数读取写入均按有符号整数 处理,小数的返回按单精度浮点型(2进制浮点)处理读取方式。提供扩展功能函数,方便用户实现混合数据读取。 能够同时满足32个串口并发情况下的正常使用。 Omron_HostLink.dll V3.2 分为完美版和单机版两个版本,本DLL于2010年最新规整优化了部分源码, 通过DLL发送缓存区与接收缓存区数据传递的功能扩展,使多语言环境的使用更加便利。 全新的串口通信DLL控件,完美的VB、VC、delphi例程及工件手册是,广大立志利用各类高级语言进行上位机软件开发的首先工具。淘宝店: 电 话: 025- 腾讯QQ: 邮 箱:
级别: 探索解密
发帖数量: 137 个
工控威望: 160 点
下载积分: 289 分
在线时间: 25(小时)
注册时间: 最后登录:
在VC中使用DLL一般都是采用动态声明的方式,函数说明中给出的是Delphi的函数原型, 在VC中声明时只要注意一下类型的对应即可,Delphi中的longint类型对应VC中的int类型 Delphi中的Pchar对应VC中的char* ,下面给出主要函数的声明: 在使用的文件的cpp中声明一个句柄: HINSTANCE hinstDLL; 用来标识导入的动态链接库。 1)、按下例说明声明相关各个函数:(在cpp文件的头处声明) typedef int (_stdcall *pOpen)(int nport, int BaudRate, int DataBits, char* Parity, int StopBits, char* User); typedef int (_stdcall *pClose)(int nport); typedef int (_stdcall *pSetDelay)(int nport); typedef int (_stdcall *pComTrue)(int nport); typedef int (_stdcall *pComWork)(int nport); typedef int (_stdcall *pMS)(int nport, int node); typedef int (_stdcall *pSC)(int nport, int node, int State); typedef int (_stdcall *pMM)(int nport, int node); typedef int (_stdcall *pTS)(int nport, int node); typedef int (_stdcall *pReadInt)(int nport, int node, int address, int Count, char* Order, int* RxdBuffer); typedef int (_stdcall *pReadTc)(int nport, int node, int address, int Count, int* RxdBuffer); typedef int (_stdcall *pWriteInt)(int nport, int node, int address, int Count, char* Order, int* TxdBuffer); typedef int (_stdcall *pSetF)(int nport, int node, int address, int Bit, char* Order); typedef int (_stdcall *pReSetF)(int nport, int node, int address, int Bit, char* Order); typedef int (_stdcall *pCancelF)(int nport, int node, int address, int Bit, char* Order); typedef int (_stdcall *pCancelAllF)(int nport, int node); typedef int (_stdcall *pSet)(int nport, int node, int address, int Bit, char* Order); typedef int (_stdcall *pReSet)(int nport, int node, int address, int Bit, char* Order); typedef int (_stdcall *pReadBit)(int nport, int node, int address, int Bit, int Count, char* Order, int* RxdBuffer); typedef int (_stdcall *pReadDInt)(int nport, int node, int address, int Count,int* RxdBuffer); typedef int (_stdcall *pReadFloat)(int nport, int node, int address, int Count, float* RxdBuffer); typedef int (_stdcall *pWriteDInt)(int nport, int node, int address, int Count, int* TxdBuffer); typedef int (_stdcall *pWriteFloat)(int nport, int node, int address, int Count, float* TxdBuffer); typedef int (_stdcall *pBitBin)(int value, int Bitaddress); typedef int (_stdcall *p32I_16h)(int value); typedef int (_stdcall *p32I_16l)(int value); typedef int (_stdcall *p16I_32I)(int valueH, int valueL); typedef int (_stdcall *p32f_16h)(float value); typedef int (_stdcall *p32f_16l)(float value); typedef float (_stdcall *p16I_32f)(int valueH, int valueL); 2)、建立动态链接库的新函数名:(在cpp文件的头处声明) pOpen mO pClose mC pSetDelay mSetD pComTrue mComT pComWork mComW pMS mMS; pSC mSC; pMM mMM; pTS mTS; pReadInt mReadI pReadTc mReadTc; pWriteInt mWriteI pSetF mSetF; pReSetF mReSetF; pCancelF mCancelF; pCancelAllF mCancelAllF; pSet mS pReSet mReS pReadBit mReadB pReadDInt mReadDI pReadFloat mReadF pWriteDInt mWriteDI pWriteFloat mWriteF pBitBin mBitB p32I_16h m32I_16h; p32I_16l m32I_16l; p16I_32I m16I_32I; p32f_16h m32f_16h; p32f_16l m32f_16l; p16I_32f m16I_32f; 3)、导入动态链接库,如例所示:(在cpp文件的OnInitDialog过程建立): hinstDLL = LoadLibrary(&Omron_HostLink.dll&); 4)、判断dll文件是否存在并声明并建立动态链接库中的函数与新函数名的对应关系, 如下:(在cpp文件的OnInitDialog过程建立): if (hinstDLL) { mOpen = (pOpen)GetProcAddress (hinstDLL,&OmronComOpen&); mClose = (pClose)GetProcAddress (hinstDLL,&OmronComClose&); mSetDelay = (pSetDelay)GetProcAddress (hinstDLL,&OmronSetDelay&); mComTrue = (pComTrue)GetProcAddress (hinstDLL,&OmronComTrue&); mComWork = (pComWork)GetProcAddress (hinstDLL,&OmronComWork&); mMS = (pMS)GetProcAddress (hinstDLL,&OmronMS&); mSC = (pSC)GetProcAddress (hinstDLL,&OmronSC&); mMM = (pMM)GetProcAddress (hinstDLL,&OmronMM&); mTS= (pTS)GetProcAddress (hinstDLL,&OmronTS&); mReadInt = (pReadInt)GetProcAddress (hinstDLL,&OmronReadInt&); mReadTc = (pReadTc)GetProcAddress (hinstDLL,&OmronReadTc&); mWriteInt = (pWriteInt)GetProcAddress (hinstDLL,&OmronWriteInt&); mSetF = (pSetF)GetProcAddress (hinstDLL,&OmronSetF&); mReSetF = (pReSetF)GetProcAddress (hinstDLL,&OmronReSetF&); mCancelF = (pCancelF)GetProcAddress (hinstDLL,&OmronCancelF&); mCancelAllF = (pCancelAllF)GetProcAddress (hinstDLL,&OmronCancelAllF&); mSet = (pSet)GetProcAddress (hinstDLL,&OmronSet&); mReSet = (pReSet)GetProcAddress (hinstDLL,&OmronReSet&); mReadBit = (pReadBit)GetProcAddress (hinstDLL,&OmronReadBit&); mReadDInt = (pReadDInt)GetProcAddress (hinstDLL,&OmronReadDInt&); mReadFloat = (pReadFloat)GetProcAddress (hinstDLL,&OmronReadFloat&); mWriteDInt = (pWriteDInt)GetProcAddress (hinstDLL,&OmronWriteDInt&); mWriteFloat = (pWriteFloat)GetProcAddress (hinstDLL,&OmronWriteFloat&); mBitBin = (pBitBin)GetProcAddress (hinstDLL,&DecBitBin&); m32I_16h = (p32I_16h)GetProcAddress (hinstDLL,&Int32ToInt_16h&); m32I_16l = (p32I_16l)GetProcAddress (hinstDLL,&Int32ToInt_16l&); m16I_32I= (p16I_32I)GetProcAddress (hinstDLL,&Int16ToInt32&); m32f_16h = (p32f_16h)GetProcAddress (hinstDLL,&Float32ToInt_16h&); m32f_16l = (p32f_16l)GetProcAddress (hinstDLL,&Float32ToInt_16l&); m16I_32f= (p16I_32f)GetProcAddress (hinstDLL,&Int16ToFloat32&); AfxMessageBox(&Omron_HostLink.dll已成功载入!&); } else { AfxMessageBox(&没找到Omron_HostLink.dll!&); SendMessage(WM_CLOSE); } 注:双引号中为动态链接库中的原有函数名。 函数中用到了char*型参数,这里介绍下char*与Cstring的相互转换的函数: (1)char*-&CString char* CS str.Format(&%s&,sz); //可以用此函数将读取的值转成字符串 (2) CString -& char* CS char* sz = str.GetBuffer(0);//可将字符串转成char*给函数赋值 5)、当不再需要使用DLL时记得关闭串口及释放动态链接库,(在OnDestroy事件中释放) if(hinstDLL) { int k = mComTrue(mnport); if (k==1) { mClose(mnport); } FreeLibrary(hinstDLL); }
级别: 探索解密
发帖数量: 137 个
工控威望: 160 点
下载积分: 289 分
在线时间: 25(小时)
注册时间: 最后登录:
上面的DLL使用要点也适用于其他各种windows标准DLL的VC调用。
雅马哈,爱普生,电装机器人。
级别: 网络英雄
发帖数量: 1721 个
工控威望: 5437 点
下载积分: 22178 分
在线时间: 292(小时)
注册时间: 最后登录:
楼主,你out了,现在是基于fins的了!本来想把源码贴出来,想想还是不要断了你的财路,只把通讯协议贴一些出来吧SUDT ACCESSPORT LOG FILE - Monitor mode监控: COM8创建时间: , 14:35:30计算机名: J2系统版本: Microsoft Windows XP Professional Service Pack 3 (Build 2600)#&&&&&& Time&&&&&&&&Function&&&&&&&&&&&&&&&&&&&&&&&&Data ( Hex )&&&&1&&&&&& []&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe2&&&&&& []&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 96003&&&&&& []&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 84&&&&&& []&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed5&&&&&& []&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe6&&&&&& []&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 96007&&&&&& []&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 88&&&&&& []&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 96009&&&&&& []&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 710&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D 11&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed12&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - AccessPort.exe13&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960014&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 715&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960016&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 717&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed18&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe19&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960020&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 821&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed22&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe23&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960024&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 825&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960026&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 727&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D 28&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 57 44 30 30 30 31 30 30 30 32 35 30 2A 0D 29&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed30&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - AccessPort.exe31&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960032&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 733&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960034&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 735&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed36&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe37&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960038&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 839&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed40&&&&&&[]&&IRP_MJ_CREATE&&&&&&&&&&&&&&&&&& Port Opened - vb6.exe41&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960042&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 1, Parity: No, DataBits: 843&&&&&&[]&&IOCTL_SERIAL_SET_BAUD_RATE&&&&&&Baud Rate: 960044&&&&&&[]&&IOCTL_SERIAL_SET_LINE_CONTROL&& StopBits: 2, Parity: Even, DataBits: 745&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D 46&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D 47&&&&&&[]&&IRP_MJ_WRITE&&&&&&&&&&&&&&&&&&&&Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D 48&&&&&&[]&&IRP_MJ_CLOSE&&&&&&&&&&&&&&&&&&&&Port Closed@00FA17C*//d0读@00FA17D*&&D1读&& @00FA17E*&&D2读@00FA27D*&&D2D3 读@00FA27D*&&D2D3 可写@00FA1B6*&&H0 读@00FA1B6*&&H0 可写@00FA1B7*&&H1 读@00FA1B7*&&H1 可写@00FA1B4*&&H2 读@00FA1B4*&&H2 可写@00FA1B5*&&H3 读@00FA1B5*&&H3 可写@00FA1B6*&&H3H4读@00FA1B6*&&H3H4可写@00FA10176* 设置W1.1位置@00FA10175* 写100.00@00FA177*&&100.00 读@00FA176*&&100.01 读@00FA175*&&100.02 读@00FA176*&&101.00 读@00FA177*&&101.01 读@00FA174*&&101.02 读@00FA175*&&0.00 读@00FA174*&&0.01 读@00FA177*&&0.02 读@00FA174*&&01.00读@00FA177*&&02.00读@00FA174*&&W0.00 读@00FA175*&&W0.01 读@00FA176*&&W0.02 读@00FA176*&& W0.02 读@00FA175*&&W1.00读@00FA176*&&W2.00读@00FA177*&&T0读@00FA177*&&T0读写@00FA176*&&T1读@00FA176*&&T1读写@00FA175*&&T2读@00FA175*&&T2读写@00FA177*&&C0读@00FA177*&&C0读写@00FA176*&&C1读@00FA176*&&C1读写@00FA176*&&C1读写并写了上下限100-10@00FA175*&&C2读@00FA175*&&C2读写@00FA170*&&C250读写@00FA109*&&C2500读写@00FA20A*&&C读写
这个人很懒,什么也没有留下!
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
不错,看看先
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
级别: 探索解密
发帖数量: 137 个
工控威望: 160 点
下载积分: 289 分
在线时间: 25(小时)
注册时间: 最后登录:
呵呵,谢谢你的指教,不错Fins协议是欧姆龙新版的协议对于新版的支持更好,而且支持串口、以太网等,特别是他支持CP1H、CP1L、CP1E等新出型号的W区的读写。数据的读取数量也更大,本人正在仿现在的hostlink串口动态库开发相关串口库,以太网的等我购买了欧姆龙以太网硬件测试成功再吧。我的目的是提高一些工控人员进行开发上位机软件的速度,提供完整的函数接口,比开发人员自行使用协议开发要快速,特别是对于新手来说完善的使用例程更加方便了他们的使用。多语言的支持比目前很多只支持VB或VC的一些网络流行源代码来说适用性更好,无论使用VC、VB、delphi、CB、PB、易语言、Labview等等都可以得到完美的解决方案。不使用其他控件,完全可以制作绿色版上位机软件,至于收费嘛,我用了时间做这个软件自然希望得到认可,愿意不愿意用全凭各位自己,我仅提供一种便捷的方法而已。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
组态王与omronplc通讯(以太网及hostlink协议).pdf 23页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:120 &&
组态王与omronplc通讯(以太网及hostlink协议).pdf
你可能关注的文档:
··········
··········
组态王与欧姆龙PLC通讯(HostLink协议与以太网协议)
北京亚控科技发展有限公司
2010 年 3 月
组态王与欧姆龙 PLC 通讯(HostLink 协议与以太网协议)
1. OMRON PLC系列划分如下(具体以OMRON相关资料为准) 1
组态王与欧姆龙PLC现有的几种通讯方式1
3. CX-Programmer编程软件与PLC 的连接2
欧姆龙HostLink协议通讯5
以太网通讯10
北京亚控科技发展有限公司
组态王与欧姆龙 PLC 通讯(HostLink 协议与以太网协议)
1. OMRON PLC 系列划分如下(具体以OMRON 相关资料为准)
● C 系列:C2000H、C200H、C200HE、C200HE-Z、C200HG、C200HE-Z、C200HS、
C200HX 、 C200HX-Z 、 C1000H 、 C**H 、 C**K 、 C**P 、 CQM1 、 C500 、 CPM1
(CPM1A/CPM2* );
● CJ 系列:CJ1G、CJ1H、CJ1G-H、CJ1H-H、CP1H、CP1L、CP1E、CH1H-X ;
● CS 系列:CS1G、CS1JH ;
● CV 系列:CVM1、CVM1-V2、CV500、CV1000、CV2000 。
2. 组态王与欧姆龙PLC 现有的几种通讯方式
(1)欧姆龙HostLink 协议
组态王支持与欧姆龙 PLC 通过串口 RS232 进行通讯。该驱动支持的硬件包括 C 系
列、CS1 系列、CJ1 系列、CV 系列,支持的协议为欧姆龙 HostLink 协议(包括 C-mode
指令和 FINS 指令) 。
(2 )以太网协议
包括以太网(UDP )和以太网(TCP )两种方式,UDP 方式通讯速度较快,TCP 方
式通讯比较稳定。
(3 )欧姆龙PLC Controller Link EventMemory
组态王支持与支持与欧姆龙公司的所有支持 Controller
Link 协议,并采用
EventMemory 方式的 PLC 的通讯。本协议采用PCI 板卡通讯,使用您的计算机中的 PCI
板卡插槽。
(4 )欧姆龙Controller Link Fins_PLC
组态王支持与欧姆龙公司采用 Controller Link Fins 协议的 PLC 进行通讯。
支持协议:专有协议。
支持硬件型号:C 系列、CS\CJ 系列、CV 系列。
驱动运行需涉及的其他软件的支持:FinsGateway 2003
本文档只介绍组态王通过 HostLink
协议和以太网协议与欧姆龙 PLC
的通讯设置,
连接的设备型号是 CS1G-H,CPU42H,以太网模块型号是 CS1W-ETN21 。
北京亚控科技发展有限公司
正在加载中,请稍后...

我要回帖

更多关于 威纶通触摸屏程序实例 的文章

 

随机推荐