欧姆龙PLC通信协议
欧姆龙plcTCP通讯协议
前几天工作需要学习了一下欧姆龙TCP通讯协议。
专注了几天吧,现在总结一下,顺便和大家分享一下欧姆龙plc TCP通讯协议和注意要点,我用的那款PLC是NJ501-1300,我也不清楚欧姆龙别的系列PLC通讯协议有没有区别,我觉得大体应该差不多了吧!朋友们有条件可以试试哈。
我电脑是建立客户端的,plc做位服务器。
这样做有个弊端,每次通讯失败就要重新连接。
TCP通讯有个特点每次通讯前都要先握手,握手成功后才可以发数据。
因为以前没有接触过,不懂,在上面打了好多圈圈,不管是复制别人的通讯格式还是手抄,都通讯失败。
还有一点就是找的通讯手册全是英文的,实在是有点心有余而力不足的感觉。
所以作为新接触TCP通讯协议的朋友一定要注意这点。
下面我们来介绍一下通讯协议,分两部分:1.FINS节点地址数据发送(客户端->服务器)握手命令发送握手格式:上面是从手册上摘的握手格式。
下面我们具体分析一下:FINS(包头)数据长度功能码错误码末位IP地址发送:46494E530000000C000000000000000000000002(本机IP地址末位为02)。
A B C D EA:FINS命令(固定包头)B:数据长度=从功能码数起至数据结尾(以字节为单位,一个字节占用两位)C:功能码分为00000000:客户端服务端00000001:服务端客户端00000002:FINS贞发送命令00000003:FINS贞发送错误通知命令00000006:确立通信连接D:错误码分为00000000:为正常00000001:数据头不是FINS或ASCII格式00000002:数据长度过长00000003:命令(C功能码)错误00000020:连接/通信被占用E:000000C7为本机IP地址末位(十六进制表示),如PLC为客户端:192.168.250.1本机IPC (服务器)IP:192.168.250.02。
再重申一遍,发数据前一定要先发握手数据。
欧姆龙plc通讯协议
欧姆龙PLC通讯协议简介PLC(Programmable Logic Controller,可编程逻辑控制器)是一种用于自动化控制的电子设备,广泛应用于工业控制系统中。
欧姆龙(Omron)是一家知名的自动化控制解决方案提供商,其PLC产品在许多行业中被广泛使用。
本文档将介绍欧姆龙PLC通讯协议,包括其基本原理、通讯方式以及常见的通讯协议类型。
通讯协议的基本原理在自动化控制系统中,PLC通讯协议起着关键的作用。
它定义了PLC与其他设备(如上位机、传感器、执行器等)之间进行数据交换的规则和格式。
通讯协议使得不同设备之间能够准确、可靠地传输和解析数据,实现各种控制操作。
通讯协议的基本原理包括以下几个方面:1.数据格式:通讯协议定义了数据在传输过程中的格式,通常包括数据头、数据体和数据尾等部分。
这些格式使得接收设备能够准确地解析数据,并执行相应的操作。
2.通讯方式:通讯协议规定了PLC与其他设备之间进行通讯的方式,包括串口通讯、以太网通讯等。
不同的通讯方式具有不同的特点和应用场景,选择合适的通讯方式可以提高通讯的稳定性和速度。
3.协议类型:通讯协议根据不同的应用场景和需求,分为多种类型,如Modbus协议、Profibus协议等。
每种协议都有自己的特点和优势,根据实际需求选择合适的协议能够实现更好的通讯效果。
欧姆龙PLC通讯方式欧姆龙PLC支持多种通讯方式,常见的包括串口通讯和以太网通讯。
下面将对这两种通讯方式进行简要介绍。
串口通讯串口通讯是一种基于RS232或RS485等标准的通讯方式,通过串口将PLC与其他设备连接起来。
欧姆龙PLC通常支持多个串口接口,可以与多个设备进行通讯。
串口通讯的优点是成本较低,适用于小规模的控制系统。
然而,由于串口通讯的传输速率较低,其通讯距离有限,且易受干扰。
因此,在一些大规模、复杂的控制系统中,串口通讯的应用相对较少。
以太网通讯以太网通讯是一种基于以太网协议的通讯方式,通过以太网将PLC与其他设备连接起来。
c#基于TCPIP、CIP协议的欧姆龙PLC通信
c#基于TCPIP、CIP协议的欧姆龙PLC通信⼀、关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是⼀个点到点的⾯向对象协议,能够实现⼯业器件(传感器,执⾏器)之间的连接,和⾼等级的控制器之间的连接。
⽬前,有3种⽹络DeviceNet,ControlNet,EtherNet/IP使⽤CIP通信协议作为其上层⽹络协议,由ODVA组织统⼀管理,以确保其⼀致性和精确性。
⼆、EtherNet/IP通信 EtherNet/IP(Ethernet/Industrial Protocol),是⼀个⼯业级的通信⽹络,⽤于⼯业器件间⾼速的信息交换,这些器件包括简单的IO器件(传感器),还有复杂的控制器(机器⼈,PLC,焊机,过程控制器)。
EtherNet/IP使⽤CIP(Common Industrial Protocl),其使⽤EtherNet和TCP/IP技术传送CIP通信包,CIP作为开放的应⽤层,位于EtherNet和TCP/IP协议之上。
三、CIP通信报⽂1.注册会话ID private byte[] Registercmd = new byte[28]{ //--------------------------------------------------------Header 24byte------------------------------------- 0x6F,0x00,//命令 2byte 0x04,0x00,//Header后⾯数据的长度 2byte 0x00,0x00,0x00,0x00,//会话句柄 4byte 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte//-------------------------------------------------------CommandSpecificData 指令指定数据 4byte 0x01,0x00,//协议版本 2byte 0x00,0x00,//选项标记 2byte};2.提取会话ID-注册请求的应答报⽂private byte[] RefRegistercmd = new byte[28]{ //--------------------------------------------------------Header 24byte------------------------------------- 0x6F,0x00,//命令 2byte 0x04,0x00,//CommandSpecificData的长度 2byte 0x6B,0x01,0x01,0x00,//会话句柄 4byte 由PLC⽣成 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte//-------------------------------------------------------CommandSpecificData 指令指定数据 4byte 0x01,0x00,//协议版本 2byte 0x00,0x00,//选项标记 2byte};public byte[] SessionHandle=new byte[4]{0x6B,0x01,0x01,0x00};//从应答报⽂提取的会话ID后续读写PLC的报⽂中,需要包含PLC返回的会话ID3.读数据服务请求报⽂报⽂由三部分组成 Header 24个字节、CommandSpecificData 16个字节、以及CIP消息(由读取的标签⽣成)实例,读取单个标签名为 TAG1的报⽂总长度为64个字节private byte[] Header = new byte[24]{ 0x6F,0x00,//命令 2byte 0x28,0x00,//长度 2byte(总长度-Header的长度)=40 0x6B,0x01,0x01,0x00,//会话句柄 4byte 0x00,0x00,0x00,0x00,//状态默认0 4byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//发送⽅描述默认0 8byte 0x00,0x00,0x00,0x00,//选项默认0 4byte};private byte[] CommandSpecificData = new byte[16]{ 0x00,0x00,0x00,0x00,//接⼝句柄 CIP默认为0x00000000 4byte 0x01,0x00,//超时默认0x0001 4byte 0x02,0x00,//项数默认0x0002 4byte 0x00,0x00,//空地址项默认0x0000 2byte 0x00,0x00,//长度默认0x0000 2byte 0xb2,0x00,//未连接数据项默认为 0x00b2 0x18,0x00,//后⾯数据包的长度 24个字节(总长度-Header的长度-CommandSpecificData的长度)};private byte[] CipMessage = new byte[24]{ 0x52,0x02 //服务默认0x52 请求路径⼤⼩默认2 0x22,06,0x24,0x01,//请求路径默认0x01240622 4byte 0x0A,0xF0,//超时默认0xF00A 4byte 0x0A,0x00,//Cip指令长度服务标识到服务命令指定数据的长度 0x4C,//服务标识固定为0x4C 1byte 0x03,// 节点长度 2byte 规律为 (标签名的长度+1/2)+1 0x91,//扩展符号默认为 0x91 0x04,//标签名的长度 0x54,0x41,0x47,0x31,//标签名:TAG1转换成ASCII字节当标签名的长度为奇数时,需要在末尾补0 ⽐如TAG转换成ASCII为0x54,0x41,0x47,需要在末尾补0 变成 0x54,0x41,0x47,0 0x01,0x00,//服务命令指定数据 默认为0x0001 0x01,0x00,0x01,0x00//最后⼀位是PLC的槽号};PLC回复报⽂:6F0018006B01010000000000000000000000000000000000000000000100020000000000B200 0800 CC 00 0000C1000000 CC-服务标识00-填充字节0000-状态 0为正常 0800:CC-0000的长度C100-数据类型:Bool0000为数据false实例,读取多个标签名为 TAG、TAG1的报⽂总长度为86个字节6F003E006B01010000000000000000000000000000000000000000000100020000000000B2002E005202200624010AF020000A02200224010200060010004C0391035441470001004C039104544 Header:6F003E006B01010000000000000000000000000000000000 24byteCommandSpecificData: 00 00 00 00 0100020000000000B2002E00 16byteCipMessage:5202 20062401 0AF0 2000 0A02 20022401 02000600 1000 4C0391 03 54414700 0100 4C0391045441473101000100010052-服务代码02 -请求路径⼤⼩20062401-请求路径0AF0超时 20 00 CIP指令长度(0A-00之间的长度为32个字节)0A-服务代码(多个标签)02-请求路径⼤⼩20022401请求路径0200 标签的数量0600 偏移量(初始值为:2+标签数量*2)1000 偏移量 =标签服务长度+初始偏移量(有⼏个标签就有⼏个偏移量)4C 03 91 03 54414700 0100 标签TAG 4C039104544147310100 标签TAG1PLC回复报⽂:6F0034006B01010000000000000000000000000000000000000000000100020000000000B20024008A000000020006001300CC000000D00005003232323232CC000000D00005003232323232 76byteHeader:6F0034006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2002400 16byteCipMessage:8A00 00000200 06001300 CC 00 0000 D000 0500 3232323232 CC000000D000050032323232328A-多个标签0000 -状态0200-项数0600-标签TAG偏移量1300-标签TAG1偏移量 0000-状态0正常D000-数据类型:string0500:字符串长度(字符串类型特有的)3232323232-数据 "22222":⽬前常⽤的数据类型: C1-BOOL C2-SINT C3-Short C4-Int C7-UShort C8-UInt CA-Float CB -Double D0-String4.写⼊数据服务报⽂实例,往标签名为:TAG1 写⼊true 数据类型为 bool写⼊报⽂:68byte6F002C006B01010000000000000000000000000000000000 000000000100020000000000B2001C00 5202200624010AF00E004D03910454414731C1000100010001000100header:6F002C006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2001C00 16byteCIPmessage:52 02 20062401 0AF0 0E00 4D 03 91 04 54414731 C100 0100 0100 01000100 28byte52-服务标识02-请求路径⼤⼩ 20062401-请求路径,默认0AF0-超时0E00-CIP指令长度(绿⾊部分的长度)4D-写⼊标识03-(标签名的长度+1)/2+1 91-扩展符号04-标签TAG1的长度54414731 -标签名的ASCII表⽰C100-数据类型 0100-默认项 0100-数据 TRUE(2byte) 01000100 - 默认最后⼀位为PLC槽号PLC回复报⽂:6F0014006B0101 00000 00000000000000000000000000000 000000000100020000000000B2000400CD000000 44byteheader:6F0014006B01010000000000000000000000000000000000 24byteCommandSpecificData:000000000100020000000000B2000400 16byteCIPMessage:CD 00 0000 CD-服务标识 00-填充字节 0000-状态好注意:当写⼊字符串类型时,写⼊的数据长度为奇数时,需要在数据后填充⼀个字节05.扩展知识⾸先建⽴起TCP连接,CIP通信端⼝默认为44818。
组态王与OMRON PLC通讯(以太网及hostlink协议)
注:如果 PC 跟 PLC 不通过交换机连接,需要使用交叉网线。
(2)数据监视 编程软件与 PLC 在线连接,双击“内存”图标,弹出图 5-7 窗口,
图 5-7
选择需要监视的寄存器类型,双击,打开监视画面,这时在菜单中会自动增加“在 线”菜单,选择“在线”---“监视”菜单,即可查看当前各寄存器区的数据,如图 5-8、 5-9。
图 3-4
北京亚控科技发展有限公司
3
组态王与欧姆龙PLC通讯(HostLink协议与以太网协议)
配置文档
设置好以后确定退出,点击“在线工作”,编程软件就可以连接到 PLC。
(3)读取 PLC 的参数设置
双击左边树形菜单的“设置”(如图 3-5),打开的“PLC 设定”对话框,选择“选 项”---“从 PLC 传送”菜单,可以把 PLC 的设置参数读上来,打开“选择上位机链接 端口”页,如图 3-6,可以查看 PLC 参数设置。
图 4-3
(2)设置 PLC 参数
组态王跟 PLC 通讯需要设置设备地址及通讯参数(如波特率、数据位、停止位、奇 偶校验)等, 设备地址即对应为欧姆龙 PLC 的 Host Link 单元号,在用 SYSMAC WAY 网络类型通讯时,Host Link 单元号是有意义的。
北京亚控科技发展有限公司
6
(1)新建工程以 SYSMAC WAY 网络类型连接 PLC
第一步:
把 CPU 模块的拨码开关的 5 拨到 OFF 位置,当使用 SYSMAC WAY 网络类型时, CPU 模块的拨码开关的 5 一定要拨到 OFF 的位置,否则编程软件与 PLC 通讯不上。
第二步:
新建工程,在网络类型里选择 SYSMAC WAY(如图 4-1),或者在原工程里,离 线状态,双击“新 PLC1[CS1G-H]离线”(如图 4-2),也可以弹出图 4-1 的对话框直接 更改。
欧姆龙触摸屏与plc网口通讯
欧姆龙触摸屏与plc网口通讯欧姆龙触摸屏和PLC(Programmable Logic Controller)是工业自动化领域中常见的设备。
触摸屏作为人机界面,用于操作和监控系统;而PLC作为控制器,负责逻辑控制和信号处理。
为了实现两者之间的通讯,欧姆龙触摸屏提供了多种通信方式,其中,网口通讯是广泛应用的一种。
一、网口通讯的基本原理网口通讯是通过以太网口进行数据传输的一种方式。
欧姆龙触摸屏和PLC之间的通讯可以通过网线连接,利用以太网的高速传输能力实现数据的传递。
触摸屏通过自带的网口接口连接到PLC的网口接口上,建立起触摸屏和PLC之间的数据通路。
二、通讯协议的选择在欧姆龙触摸屏与PLC网口通讯中,通讯协议的选择非常重要。
常见的通讯协议有Modbus、Ethernet/IP、PROFINET等。
选择合适的协议可以有效地提高通讯的稳定性和可靠性。
根据实际需求和设备支持的协议,确定合适的通讯协议是通讯成功的关键。
三、配置触摸屏和PLC的通讯参数配置触摸屏和PLC的通讯参数是实现网口通讯的第一步。
在欧姆龙触摸屏的设置界面中,通过选择通讯协议和输入PLC的IP地址、端口号等参数,建立触摸屏和PLC之间的通讯链路。
同时,在PLC的编程软件中也需要设置相应的网络参数,确保触摸屏和PLC之间的通讯连接顺利进行。
四、数据的读写操作网口通讯的目的是实现对PLC的数据读写操作。
通过触摸屏,操作者可以方便地监视和控制PLC的状态。
触摸屏上显示的数据是通过与PLC之间的通讯获取的,而触摸屏上的操作指令也是通过通讯发送给PLC实现控制。
通过网口通讯,实现了PLC数据和触摸屏之间的无缝连接,提高了工业自动化控制系统的操作灵活性和可靠性。
五、通讯异常的处理在实际应用中,网口通讯可能会出现异常,比如连接中断、通讯错误等。
当触摸屏与PLC之间出现通讯异常时,需要进行相应的处理,确保通讯正常运行。
通常可以通过检查网络连接、配置参数、排除通讯干扰等方法来解决通讯异常的问题。
omron plc tcp 协议
omron plc tcp 协议
欧姆龙PLC TCP协议是一种工业控制协议,允许运行欧美龙PLC(Programmable Logic Controller)的计算机系统和其他计算机系统以及计算机设备之间的双向通信。
欧姆龙
PLC TCP协议是基于RJ45连接和TCP / IP协议(Transmission Control Protocol / Internet Protocol)来实现实时数据交换,有助于构建一个引人入胜、安全可靠的PLC网络。
欧姆龙PLC TCP协议是特别硬件设计,以降低通信代价,使用范围更高,能够满足采集及控制技术等行业对PLC网络要求。
这种协议提供了多种数据传输机制,从而实现多种功能,比如软件和硬件调试、连接分布式系统、灵活应用网络设备等等。
运行欧姆龙PLC TCP协议的系统可以有效地处理大量信息,可以实现远程监控和远程控制,同时可以提供全面的报警信息,实现实时的备份系统。
此外,在PLC系统中运行欧姆龙PLC TCP协议的系统还可以提供用户自定义的安全策略
管理,加强安全机制,确保网络是安全可靠的。
总而言之,欧姆龙PLC TCP协议是一种行业领先的创新协议,为PLC系统提供了可靠的、灵活的通信技术。
它可以实现大容量数据传输,提供更安全、更可靠的PLC网络应用,
是PLC网络管理的理想解决方案。
关于欧姆龙plc串口通讯协议
1.无协议通信无协议通信是不使用固定协议,协议不经过数据转换,通过通信端口输入、输出指令,如txd、rxd指令,发送接收数据的功能。
这种情况下,通过plc的系统设定将串行端口的串行通信模式设为无协议通信(串行端口1、2都可以)。
通过该无协议通信,与带有rs-232端口或rs-422a/485 端口的通用外部设备,按照txd、rxd指令进行单方面发送接收数据。
例如,可进行来自条形码阅读器的数据输入以及向打印机的数据输出等简单的数据接收和发送。
无协议通信时发送接收的消息帧:开始代码和结束代码之间的数据用txd指令进行发送,或者将插入“开始代码”及“结束代码”之间的数据用rxd 指令进行接收。
当按照txd指令发送时。
将数据从i/o存储器中读取后发送。
按照rxd指令接收时,仅将数据保仔到i/o存储器的指定区域。
“开始/结束代码”均由plc系统设定来指定。
1次txd指令或rxd指令可发送的信息的长度(不包括开始代码或结束代码)最大是256字节。
2.nt链接通信cp1h在pt(可编程终端)及nt链接(1台链接多台的1:n模式)下可进行通信,但在nt链接(1:1模式)下不能进行通信。
pt为nt31/631(c)-v2系列触摸屏或ns系列触摸屏的情况下,可使用高速nt链接。
nt链接可以通过plc系统设定及pt本体上的系统菜单进行设定。
利用pt本体上的系统菜单进行设定时,可通过以下操作进行pt侧的设定。
(1)在pt本体的系统菜单内的存储切换菜单的【串行端口a】或【串行端口b】,选择【nt链接(1:n)】。
(2)按【设定】按钮,将【通信速度】设定为【高速】。
3.上位链接通信上位链接包括两个方面,即从上位计算机到plc和plc到上位计算机。
在前者中,对于cpu单元,从上位计算机发布上位链接指令(c模式指令)或fins指令,进行plc的i/o存储器的读写、动作模式的变更及强制置位/复位等各种控制。
在后者中,对于上位计算机,从cpu单元发出fins指令,发送数据和信息。
欧姆龙plc网口通讯设置
欧姆龙plc网口通讯设置欧姆龙PLC(Programmable Logic Controller)是一种常用于自动化控制系统的设备,其网口通讯设置对于实现数据传输和远程控制至关重要。
本文将探讨欧姆龙PLC网口通讯设置的基本原理和步骤。
在实施自动化控制系统时,PLC被广泛应用于各个领域,如工业生产线、机械装置以及智能建筑等。
而PLC的网口通讯设置是实现PLC与其他设备进行数据交换和远程控制的关键之一。
首先,我们来了解一下PLC网口通讯设置的基本原理。
PLC中的网口通讯模块是PLC与其他设备进行数据传输的接口,通常采用以太网通讯或者串行通讯方式。
以太网通讯方式具有传输速度快、稳定性好的特点,适用于大容量数据传输和实时控制。
而串行通讯方式则适用于小容量数据传输和远程监控领域。
在进行PLC网口通讯设置之前,我们首先需要了解PLC的通信参数,如IP地址、子网掩码、网关等。
这些参数需要与其他设备在同一个网络中,才能实现数据交换和远程控制。
其次,我们需要使用PLC的编程软件,如CX-Programmer或者PLC Designer,通过连接电脑和PLC,进行网口通讯设置。
步骤如下:1. 打开编程软件,并连接电脑与PLC。
确保PLC和电脑之间的连接正常。
2. 在编程软件中点击“网口设置”或者“通信配置”等选项,进入PLC网口通讯设置界面。
3. 在设置界面中,选择通信接口类型为以太网或者串行口,根据实际需要进行选择。
4. 输入PLC的IP地址、子网掩码和网关等通信参数。
确保这些参数与其他设备在同一个网络中。
5. 进行网络测试,确认网络连接正常。
可以通过ping命令或者软件提供的网络测试工具来进行测试。
6. 在通信设置界面中选择所需的通信协议和通信方式。
不同设备之间通常采用不同的通信协议,如Modbus、EtherNet/IP等。
7. 设置数据传输方式和端口号。
可以选择TCP/IP方式或者UDP方式进行数据传输,并设置相应的端口号。
欧姆龙plc用网口通讯
欧姆龙plc用网口通讯欧姆龙PLC(Programmable Logic Controller,可编程逻辑控制器)是一种广泛应用于工业自动化控制领域的设备。
它的作用类似于人类大脑,能够接收传感器采集的数据,并根据预设的逻辑进行判断和控制输出信号,实现自动化控制。
欧姆龙PLC的网络通信是其功能强大的一部分,而其中的网口通讯更是用于实现设备间的高效连接和数据交换。
本文将详细介绍欧姆龙PLC用网口通讯的原理、应用和优势。
一、欧姆龙PLC的网口通讯原理欧姆龙PLC的网口通讯利用的是以太网协议,通过网线连接PLC与其他设备,实现数据的传输和接收。
它基于通讯模块和通讯协议,通过设定与其他设备通讯的规约,实现数据的交互。
通讯模块通常由网口和串口组成,而网口通讯则是最为常见和高效的方式之一。
二、欧姆龙PLC网口通讯的应用欧姆龙PLC的网口通讯广泛应用于自动化生产线、工业机器人、智能设备等各个领域。
它能够实现设备之间的数据实时传输,确保整个自动控制系统的协调运行。
以生产线为例,欧姆龙PLC通过网口与其他设备进行通讯,实现生产速度、产品质量和库存管理的自动化控制。
同时,它还能与远程监控系统相连接,使操作人员能够实时了解生产状况,并进行远程操作和调试。
三、欧姆龙PLC网口通讯的优势欧姆龙PLC的网口通讯相较于传统的串口通讯具有明显的优势。
首先,网口通讯具有高速传输的特点,能够实现较大量数据的迅速传输,提高生产效率。
其次,网口通讯具备较远的传输距离,能够通过网络连接远程设备,实现远程监控和控制。
此外,网口通讯还具备较强的稳定性和可靠性,能够保证数据的及时交换和正确传输,减少通讯故障的发生。
四、欧姆龙PLC网口通讯的发展前景随着工业自动化程度的不断提高,欧姆龙PLC的网口通讯在工业领域的应用前景日益广阔。
越来越多的企业开始意识到网口通讯的重要性和优势,并逐渐对其进行采用和推广。
未来,随着物联网技术的进一步发展,欧姆龙PLC的网口通讯将与其他智能设备相连接,实现更加智能化和高效的自动化控制。
欧姆龙PLC全系列HostLink通信协议串口动态链接库DLL
一、最新欧姆龙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,注括号里是实际的停止位位数User:DLL授权用户名;返回值:长整型,操作成功返回1,否则返回0;打开串口不成功即返回0时的原因:1)、串口不存在或被占用; 2)、DLL试用过期; 3)、DLL授权注册不正确。
使用举例:ComOpen(1,9600,7,1,1,'wjun') , 打开COM1口,并设定波特率=9600、数据位=7、校验位=E(偶校验)、停止位=1,授权用户='wjun'。
欧姆龙PLC通信协议
欧姆龙PLC通信协议参考:W342--SYSMAC CS/CJ Series Communications Commands欧姆龙通信命令可分为两类:1:C-mode commands只可通过串口通讯2:FINS commands既可通过串口通讯也可通过各类网络通信(适应性较强)=========================================================== ====================下面只讲FINS命令一、命令发送:FINS直连发送命令如下:FINS command code见下表命令后面紧跟着就是内存区域寻址,见下表Command Code 后面紧跟着需要访问的地址,地址可分为按字地址或按位地址,取决于你需要访的的是字还是某一位。
由紧跟着Command Code后面的那个字节(I/O memory area designation)区分是读取字还是读取位,还是写入字或写入位,具体定义见下表:按字地址:选取表中Data Type列中为Word的命令(命令在Memory area code内)按字地址的三个地址位中,只使用前两个,最后一个字节为Ascii码”00”,其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,数据高位在前低位在后。
例如从H12开始读取7个字的数据,命令为:0101 B2 001200 0007例如将W3、W4、W5分别置数据1234、ABCD、7890,命令为:0102 B1 000300 0003 1234ABCD7890按位地址:选取表中Data Type列中为Bit的命令(命令在Memory area code内)按位地址的三个地址位中,前两个指示位所在的字,最后一个字节指示位在字中的位置(0~15),其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,每一位的值用一个字节的数据代替,当寻址的位为0时用ascii码“0”代替,当寻址的位为1时用ascii 码“1”代替。
组态王与OMRON PLC通讯(以太网及hostlink协议)
组态王与欧姆龙PLC通讯(HostLink协议与以太网协议)配置文档北京亚控科技发展有限公司2010年3月目录1. OMRON PLC系列划分如下(具体以OMRON相关资料为准) (1)2. 组态王与欧姆龙PLC现有的几种通讯方式 (1)3. CX-Programmer编程软件与PLC的连接 (2)4. 欧姆龙HostLink协议通讯 (5)5. 以太网通讯 (10)6. 附录 (19)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进行通讯。
欧姆龙fins指令
欧姆龙FINS指令1. 简介欧姆龙FINS指令是一种通信协议,用于欧姆龙PLC(可编程逻辑控制器)与其他设备之间的通信。
FINS(Factory Interface Network Service)指令允许PLC与上位机、HMI(人机界面)和其他设备进行数据交换和控制操作。
本文将深入介绍欧姆龙FINS指令的工作原理、使用方法和常见应用。
2. 工作原理欧姆龙FINS指令是基于TCP/IP协议的应用层协议。
它使用一系列的指令和数据结构来实现PLC与其他设备之间的通信。
FINS指令的数据格式是二进制的,通过网络传输,并使用特定的指令码和参数来完成不同的功能。
FINS指令的工作原理如下:1.建立连接:PLC与其他设备之间首先需要建立连接。
连接可以通过以太网、串口或其他通信接口进行。
2.发送指令:一旦连接建立,PLC可以向其他设备发送FINS指令。
指令可以是读取数据、写入数据、执行控制操作等。
3.处理指令:接收到FINS指令的设备(如上位机)会解析指令,并根据指令的要求执行相应的操作。
设备可以通过FINS指令读取PLC的数据、写入数据到PLC、执行控制操作等。
4.返回结果:设备在处理完指令后,会向PLC返回相应的结果。
PLC可以根据返回的结果进行下一步的操作。
3. 使用方法使用欧姆龙FINS指令进行通信需要以下几个步骤:1.配置网络参数:确保PLC和其他设备连接到同一个网络,并配置好IP地址、子网掩码和网关等参数。
2.编写程序:在PLC中编写程序,使用欧姆龙的编程软件(如CX-Programmer)创建FINS指令来实现通信功能。
程序可以包括读取数据、写入数据、执行控制操作等。
3.建立连接:在其他设备上,使用相应的编程语言或软件库,通过TCP/IP协议与PLC建立连接。
连接可以使用Socket编程、OPC(OLE for ProcessControl)等方式。
4.发送指令:一旦连接建立,其他设备可以向PLC发送FINS指令。
欧姆龙plc通讯协议
欧姆龙plc通讯协议欧姆龙PLC(Programmable Logic Controller)通信协议是用于PLC与外部设备进行数据传输的规范。
在工业自动化领域中广泛应用的PLC通信协议有很多种,其中欧姆龙PLC通信协议是由日本欧姆龙公司开发的,适用于欧姆龙PLC与其他设备之间的通信。
欧姆龙PLC通信协议分为串行通信和以太网通信两种方式。
串行通信使用RS-232C或RS-485接口进行数据传输,而以太网通信使用乙太网进行数据传输。
两种通信方式各有优劣,可以根据实际需求选择合适的通信方式。
欧姆龙PLC通信协议主要包括通信参数设置、数据传输、数据读写及状态监测等功能。
通信参数设置包括通信端口号、波特率、数据位、校验位、停止位等参数的设置。
数据传输可以通过发送和接收数据帧来实现,数据帧包括起始符、目的地址、源地址、数据长度、校验位等信息。
数据读写可以通过读取和写入寄存器的方式来实现,可以实现对PLC中的输入信号和输出信号的读取和控制。
状态监测功能可以实时监测通信连接状态,包括通信故障、通信超时等状态。
欧姆龙PLC通信协议的优点在于稳定性高、可靠性强、数据传输速度快。
它可以实现PLC与其他设备之间的高效通信,例如与人机界面HMI进行数据交换、与上位机进行数据采集和控制等。
通过欧姆龙PLC通信协议,可以实现对生产过程的监控和控制,提高生产效率和品质。
虽然欧姆龙PLC通信协议在工业自动化领域中得到了广泛应用,但它也存在一些局限性。
例如,通信距离有限,一般不超过几千米;通信速度受限,无法满足高速数据传输的需求;另外,由于欧姆龙PLC通信协议是专有协议,与其他厂家的设备之间的通信可能存在一定的兼容性问题。
总的来说,欧姆龙PLC通信协议是工业自动化领域中非常重要的一种通信协议,它为PLC与外部设备之间的数据传输提供了可靠的规范。
通过合理的设置通信参数和灵活的数据读写方式,可以实现PLC与其他设备之间的高效通信,提高生产过程的自动化水平。
基于 FINS 协议的OMRON PLC 与上位机通信
第四章 上位机与 OMRON PLC 通信的几种方式
OMRON PLC 与上位机的以太网通信依靠发送 FINS 指令实现。上位机发送 FINS 指令 可以直接读取或写入 PLC 相应的数据,PLC 部分无需编写接收和发送程序。本例中采用 FINS/UDP 方式,具体如图所示。上位机利用 Visual Basic 6.0 进行程序开发,具体实 现向 PLC 发送 FINS 指令(读取内存区域,指令代码 0101)读取 DM100 开始的 150 个字 数据的功能。本文提供了三种方法来实现这一个功能,增加了系统开发的选择性。
3.2 FINS 帧结构 FINS 帧分为 FINS 指令帧和 FINS 响应帧两种形式。指令帧在发送 FINS 指令时使用,
响应帧则在接收到 FINS 指令后对其返回响应时使用。它们都是由一个 FINS 报头(存储传 输控制信息)、一个 FINS 指令域(存储一个 FINS 指令)以及一个 FINS 参数/数据域(存储 指令参数和发送/响应数据)所组成的。响应帧 FINS 指令域的内容与所接收到的指令帧的 FINS 指令域相同。具体结构见图 3、图 4。
下面主要介绍三种方法来实现上述功能。
1. 使用 Micosoft Winsock 控件
在 VB 中新建一个 Standard.EXE 文件。添加 Winsock 控件,对象命名为"Winsock1", 发送 Fins 命令程序如下:
错误!未找到引用源。
编译保存后即可。
2. 使用 FinsGateway 中的 OMRON FinsMessaging Control
设置步骤: (1)确认 Finsgateway 是否可以通信;
网络号、节点号、单元号(16+UnitNo) (2)设置本地网络号,节点号; (3)设置通信参数;
欧姆龙串口通信协议-CJ CW CS
一,工作环境PC或服务器通过串口直接连接欧姆龙PLC。
(PLC串口为默认设置)设置串口参数:波特率:9600数据位:7停止位:2奇偶校验:偶校验(Even)流控:无设置自动换行。
设置ASKII码写入,ASKII码显示。
二,写指令例如,现在将0x1234,写入PLC的D100内。
命令如下:发送:@00FA0000000000102820064000001123479*解析:@为固定头00为PLC地址,默认PLC地址为0,可设定0--31FA为头编码,可为”FA”“RD”“WR”00000为5位等待时间,默认为0*10ms0000右到左依次是:ICF\DA2\SA2\SID各占一个字节默认为00以上基本可以不变;0102为写入指令;若为“0101”则是读取指令82为欧姆龙PLC的DM区,即欧姆龙PLC的D区。
下图为欧姆龙PLC对应区域的标识。
0064为16进制的100,即D10000为位地址,即D100.000001为要写入的字数1234为要写入的内容,十六进制的123479为XOR校验值。
(这个我们最后讨论)*为结束标志。
(后面还有一位回车符\CR)返回:@00FA00400000000102000040*解析:其他都差不多意思,只有红色的0000表示写入成功。
三,读取命令例如,现在将D50字的内容读出来。
命令如下:发送:@00FA000000000010182002800000176*解析:蓝色部分不做解析了。
0101为读指令82为DM区002800为D50.000001为1个字76为XOR校验值。
返回:@00FA004000000001010000A5A543*解析:其他都差不多意思,黄色的0000表示读取成功;红色A5A5是从D50读取出来的值。
四,XOR校验位。
欧姆龙的串口校验方式为逐位异或校验。
就以读取指令来说明吧:@00FA000000000010182002800000176*首先将@00FA0000000000101820028000001的ASKII码逐一转为HEX。
欧姆龙plc通讯协议格式
欧姆龙plc通讯协议格式
欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位机。
每次通信发送/接受的⼀组数据称为⼀“帧”。
帧由少于131个字符的数据构成,若发送数据要进⾏分割帧发送,分割帧的结尾⽤CR码⼀个字符的分界符来代替终终⽌符。
发送帧的⼀⽅具有发送权,发送⽅发送完⼀帧后,将发送权交给接受⽅。
发送帧的基本格式为:
@机号识别码正⽂FCS终⽌符
其中:
@ ——为帧开始标志;
机号——指定与上位机通信的PLC(在PLC的DM6653中设置);
识别码——该帧的通信命令码(两个字节);
正⽂——设置命令参数;
FCS——帧校验码(两个字符),它是从@开始到正⽂结束的所有字符的ASCⅡ码按位异或运算的结果;
终⽌符——命令结束符,设置“*”和“回车”两个字符表⽰命令结束。
响应的基本格式为:
@机号识别码结束码正⽂FCS终⽌符
其中:
@ ----为帧开始标志;
机号----应答的的PLC号,与上位机指定的PLC号相同;
识别码----该帧的通信命令码,和上位机所发的命令码相同;
结束码----返回命令结束有⽆错误等状态;
正⽂——设置命令参数,仅在上位机有读数据时⽣效;
FCS——帧校验码,由PLC计算给出,计算⽅法同上;
终⽌符——命令结束符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欧姆龙 PLC 通信协议
参考: W342 --SYSMAC CS/CJ Series Communications Commands
欧姆龙通信命令可分为两类:
1: C-mode commands 只可通过串口通讯 2: FINS commands 既可通过串口通讯也可通过各类网络通信
(适应性较强) 面只讲 FINS 命令
一、命令发送:
FINS 直连发送命令如下:
FINS command code
见下表
5-1-1 FINS COmmandS
Thefdlwirg table IlStS the FINS CCXnmands.
命令后面紧跟着就是内存区域寻址,见下表
Command Code 后面紧跟着需要访问的地址,地址可分为按字地址或按位地址,取决于你需要访的的是字还是某一位。
由紧跟着Command Code 后面的那个字节( I/O memory area designation )区分是读取字还是读取位,还是写入字或写入位,具体定义见下表:
5-2-2 I/O MemOry AddreSS DeSignatiOnS
按字地址:选取表中Data Type 列中为Word 的命令(命令在Memory area code 内)按字地址的三个地址位中,只使用前两个,最后一个字节为Ascii 码”00”,其后跟两个字节
为需要传输的数据量,然后紧跟着就是传输的数据,数据高位在前低位在后。
例如从H12 开始读取7 个字的数据,命令为:0101 B2 001200 0007 例如将W3、W4、W5 分别置数据1234 、ABCD、7890,命令为:0102 B1 000300 0003 1234ABCD7890
按位地址:选取表中Data Type 列中为Bit 的命令(命令在Memory area code 内)按位地址的三个地址位中,前两个指示位所在的字,最后一个字节指示位在字中的位置(0~15),其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,每一位的值用一个字节的数据代替,当寻址的位为0 时用ascii码“ 0”代替,当寻址的位为1 时用ascii 码“ 1”代替。
例如读取CIO100.03~CIO100.07 这5 位的数据命令为:0101 30 010003 0005
例如将CIO101.01~CIO101.07分别置位0、0、1、0、1、1、1 命令为:0102 30 010101 0007 00 00 01 00 01 01 01
例如将H25.14 置1
命令为:0102 32 002514 0001 01
二、命令响应
FINS response code 见下表
正常情况下FINS response code 返回0000,当出现问题时,请根据FINS response code 查找上表检查原因返回的数据如果是按字寻址,则按数据高位在前低位在后的原则依次返回。
返回的数据如果是按位寻址,则以每位一个字节的原则依次返回。
最后介绍FCS校验码的计算方法,计算时只计算FCS以前的所有数据,计算方法如下:
FCS CalCUlatIOnS
TrIe PLC CalCUlateS tne FCS (F^arre CreCK SeqUenCe) VaUe for each command frame it receives, and it CheO<s fo r errors by COmParing Ihat ValUe With the FCS Vallje Sert ,Λr tb the COmmand frame The hos* COrrPUter must calculate the FCS ValUe Wten Sendlng a ∞rπmand frame.
AISQ When GheCking for errors in response frames, the host COrnPUter must CaICUlatftthRFCS VaIUPfor PACh rAsponspframR It I r PCPigS Rnd COrrParAthat ValJe to the FCS value sent in the response frame.
ASCIl Cooe
9
♦0 01 ∞ EOR CoOo 1 31 ∞M EoA COOl O
3C
00∙1 EoR
CO30 R
52
OICI
∞1C
NOte The FCS is an 8∙bit ValUe CQnVerted
into two ASCl CharaCterS The 0∙b∣t VRlUe is the result Of an exclusive OR
SaqUantiaIIy p^rforιred between each CnaraCter in a IranSrriSSlOn J from Ine firs: CharaCter in the frame to (he IaSt CharaCtOrof tho IOXt in that framo. Non ASCll data, howovor. may GOmOtimOQ be Sent in Ihe text data If the data Iength IS 7 bits, the Iatmost bit Of each CharaCter is masked before the FCS is CalCuIated
1 31
OOll OoQl CaICU^tOn result 01 ∞ OolO (See note.)
I
I
4 hex
2 Hex
Tne ^aUe ts OOnVertea to t 百XaaearWl IMhMIMMA SCll.
< ---------------------------。