当前位置:
(已结帖)工控PLC擂台第59期-PLC与PC链接通讯的通信方式和通信协议
回复 | 人气 | 打印
玻璃的心 个人主页 给TA发消息 加TA为好友 发表于:2011-10-07 19:56:49 楼主

        请随便就自己熟悉的一类PLC和PC通讯的通信方式加于讲解,并附有详细的通信参数的设置过程以及相关的截图。如果有多种和上位机通讯的方式也请全部列出,并加于相关的讲解,回答的最好最完全的获大奖!

 

 

请任意选择PLC实现之,原创最多,阐述最详细,程序越准确者获一等奖



工控PLC擂台每周一期,本期待58期结束一周后结贴。奖项设置:一等奖2名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。

分享到: 关注收藏 邀请回答 回复 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-18 21:25:49 1楼
 

1.VB通过OPCNA400PLC通信

注:软件测试版本说明

序号

名称

版本

1

PLC编程软件

NAPro 2.4

2

VB编程软件

VB6.0版本8176

3

OPC服务器

NANETOPCSvr V1.6

4

OPC客户测试端

OPCTest V1.0

 

1)写入PLC程序,并建立PLC配置文件;在文件夹PLCTest中;如下图所示

2)建立NANETOPC的服务器设置名称为NA,并导入硬件配置文件;

3)连接好硬件,并用网线与个人电脑连接正常;

4)用NANET的客户端测试软件打开一个文件“CLient.opc”;进行测试,连接正常时不数据变化;

5)编写VB测试平台;其原代码在文件夹VBTest中;

6)测试完成如下图;

测试完毕;

需要以上VB的PLC原代码可以来信:bhdxzgp@163.com;注明:工控网;

  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-18 21:33:26 2楼
 

IFIX通过OPCNA-400进行通信

注:软件测试版本说明

序号

名称

版本

1

PLC编程软件

NAPro 2.4

2

IFIX编程软件

iFIX V5.0 (Build6667)

3

OPC服务器

NANETOPCSvr V1.6

4

OPC客户测试端

OPCTest V1.0

 

1)写入PLC程序,并建立PLC配置文件;在文件夹PLCTest中;如下图所示;

2)建立NANETOPC的服务器设置名称为NA,并导入硬件配置文件;

3)连接好硬件,并用网线与个人电脑连接正常;

4)用NANET的客户端测试软件打开一个文件“CLient.opc”;进行测试,连接正常时不数据变化;

5)启动IFIX,如下图

6)再配置OPC进行本地连接OPC的服务器,如下图所示;

7)添加组,添加标签,如下图所示:监控Q1,Q2,QW1,IW1,MW3,MW7,MW10,MW11,MW12,MW13,M18,M19;标签格式如:

NANet.NA.Q.1;如下图所示

8)当连接好PLC,且PC ACCESS运行,则在此启动链接时,可以检测各变量的连接好坏,如图所示;

9)运行IFIX,添加OPC驱动,添加变量,其地址对应OPC中所建变量,如图所示

10)建立组态界面,进行测试;把NA-IFIX.OPC拷贝文件夹PDB中,把TEST.grf拷贝文件夹PIC到安装目录中; 且链接好PLC 激活OPC的驱动,测试界面如下图所示

  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-18 21:36:21 3楼
 

组态王通过OPCNA-400进行通信

注:软件测试版本说明

序号

名称

版本

1

PLC编程软件

NAPro 2.4

2

组态王编程软件

组态王6.51

3

OPC服务器

NANETOPCSvr V1.6

4

OPC客户测试端

OPCTest V1.0

 

1)写入PLC程序,并建立PLC配置文件;在文件夹PLCTest中;如下图所示;

2)建立NANETOPC的服务器设置名称为NA,并导入硬件配置文件;

3)连接好硬件,并用网线与个人电脑连接正常;

4)用NANET的客户端测试软件打开一个文件“CLient.opc”;进行测试,连接正常时不数据变化;

5)启动组态王6.5,建立工程项目;并打开设备中的OPC服务器;选择NANETOPCserverNA400OPC服务器;如下图所示;

6)在组态数据库中建立数据词典;如下图所示;

7)建立测试界面;测试如下图所示;测试文件在KingViewTest中;

测试完毕;

需要以上VB的PLC原代码可以来信:bhdxzgp@163.com;注明:工控网;

 

  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-18 21:44:33 4楼
 

还有好多呢;

NA400的PLC和NA200的PLC与各类组态及VB,VC通信的过程文档和原代码;如果有需要的可以发送邮件索取;

bhdxzgp@163.com;zhanggp@nandaauto.com;

QQ:280830157;加我和来信时注明为:中国工控网;和自己的名字或者单位!谢谢!

  回复 引用 举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-10-22 15:39:28 5楼
  opc 在PLC与PC机之间的通讯应用得多,但实际上国产的组态软件集成了很多的相关驱动,也就是通信方式和通讯协议多种多样,就看PLC和PC的硬件配置情况。
  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-23 11:10:51 6楼
 

楼上说的很多啊!

现在大多PLC厂家,都做自己怕OPC的SEVER;为了方便与市场上面的一些组态进行通信方便

但是通过上次我的测试还是发现一些问题;

同样是通过网络;OPC比modbusRTU的要慢!

  回复 引用 举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-10-25 20:14:01 7楼
 

其实除了OPC之外,使用Modbus/RTU或Modbus/TCP也是很常见的通讯方式。

在PLC与PC之间,PLC作为Modbus/RTU从站或Modbus Server,有些只需简单配置一下串口或者以太网接口,有些需要使用串口初始化,将串口配置成Modbus协议。

 

我下面来介绍AC500的串口和以太网接口通过Modbus协议实现与PC机之间的通讯。

一、先介绍Modbus/RTU,既然是RTU,就是对AC500的串口进行初始化配置,无需像西门子S7-200一样需要使用指令来实现串口的Modbus协议初始化。

初始化设置截图如下:

1,将Com1口配置成Modbus,缺省是Online access

2、串口参数设置:
RTS control设置为Telegram,目的是485通讯推荐配置,如果是232就设置为None即可。
波特率、检验位、停止位等与PC机内设置一致即可。
Run on config fault设置为Yes,这样做的目的是当串口设置错误时不至于影响到CPU的运行。
Operator mode自然设置为Slave,在与PC机通讯的时候,PC机是主动一方,自然是Master,反过来PLC自然是Slave。
Address就是PLC Modbus从站地址,与PC机中配置时一致即可
******************************
AC500的Modbus/RTU配置就这样简单,配置完成后,下载即可完成。
二、以太网的Modbus/TCP配置同样简单,也同样同形并茂的方式。
1、在以太网接口配置中添加Modbus On TCP/IP
2、Modbus TCP的设定。当然还得设置以太网的IP地址,比如192.168.1.2,端口设置为502
Server connections,这个是当PLC设置为Modbus Server时,可以同时与几个PC机(作为Modbus Slient)的链接数量。
Task timeout和OMB time可以缺省设置,根据需要可以适当修改。具体参考下面的内容。
Swap 设置为TRUE,这里是支持Motorala格式,如果是intel,可以设置为false
*****************有关任务超时参数(Task timeout)和Omb时间参数(Omb time)*****************************
任务超时参数(Task timeout)和Omb时间参数(Omb time)是与控制器作为Modbus客户端有关的参数,在OMB设置中已经进行设置。

任务超时(Task timeout)参数决定了当客户端传输请求给服务器后,在终止处理发出错误消息之前,客户端应该等待服务器应答的时间的长度。 对于我们例子中考虑的网络,可以保持默认值为20×100ms甚至更少。但是,对于具有高利用率的较大网络,有必要增加这个值。任务超时参数范围的有效值为1×100ms到60000×100ms。这里必须指出,控制器通常不能访问任何一台服务器,除非其已收到了答复,或者超时时间已过期。这就是为什么超时值应该根据即使临时有较高利用率也不要发生通讯中止的方式来把握的原因。另一方面,保留时间不应过高,以尽早地检测通信错误,尽可能达到更高的性能。在此例中,选择任务超时值为20×100ms(默认)。

Omb时间(Omb time)设定了接收到应答报文后应保持多久的连接。 Modbus协议基于TCP/IP。这个协议的一个特点是首先建立逻辑通信连接,然后交换数据,最终再关闭连接。建立和关闭连接的过程需要一些时间。如果控制器和服务器之间在较长的时间间隔后进行数据通信,应该在完成数据通信后立即关闭连接。 这可以避免不必要长期连接堵塞Modbus访问。为了在建立的客户端和服务器连接之间快速循环交换数据,可以通过设置较高的“OMB时间”减少关闭过程。
********************************************************************************************************************
三、下面介绍使用fameview组态软件来实现modbus通讯
1、Modbus/RTU
杰控的MB_RTU驱动程序即Modbus/RTU协议
MB_RTU 驱动支持 MODBUS RTU 协议,可以与能提供 MODBUS Slave 协议的设备,通过串口进行通讯;
设备设定
… 选择MODBUS Slave 协议,CRC 校验
… 设定MODBUS 设备的单元号,如 10;
… 通讯参数设为与计算机一致,如 19200、8、1、偶校验、RTC控制; 
通讯设定
… 选择<设备通讯>功能,执行<安装驱动程序>任务,出现下面对话框:
… 选择MB_RTU 驱动程序,进行安装;
… 选择<设备通讯>功能,执行<定义设备数据表>任务,在设备数据表中定义某个设备号:
        远程站号,是 MODBUS 设备的单元号,必须与设备中所设相一致;
       选择使用的串口 COM1-16,并执行<通讯串口>按钮定义通讯参数:
       
          数据类型:
     标准MODBUS 协议的数据首地址是从 1 开始,但有些设备的首地址却从 0 开始;
     开关量以字为单位算;例如:数据类型=继电器(1/15),数据格式=字,开始地址=0,数据长度=3,则表示从继电器(1/15)开关量中的 1-48;
      模拟量以字为单位算;例如:数据类型=寄存器(3/16),数据格式=字,开始地址=0,数据长度=3,则表示从寄存器(3/16)模拟量中的 1-3; 
       MODBUS 所支持的最大数据长度为 255 个字,但每种类型的设备所支持的最大数据长度有不尽相同,从 1-255 不等,所填写的数据长度>设备所支持的最大数据长度时,通讯失败;
2、Modbus/TCP
杰控的MB_TCPIP 驱动程序即Modbus/TCP协议
MB_TCPIP 驱动程序支持 MODBUS TCP 协议,可以与能提供 MODBUS TCP 服务器协议的设备进行通讯;
设备设定
… 选择MODBUS TCP 协议
… 设定MODBUS TCP 设备IP 地址(192.168.1.2)、端口号(502)、单元号(10);
通讯设定
… 选择<设备通讯>功能,执行<安装驱动程序>任务,出现下面对话框:
       选择MB_TCPIP 驱动程序,进行安装;
… 选择<设备通讯>功能,执行<定义设备数据表>任务,在设备数据表中定义某个设备号:
      MB 单元号,是MODBUS 设备的单元号,必须与设备中所设相一致;
      端口号,是 TCP 服务器所开放的 Socket,一般为502;
      设备IP 地址,为TCP 服务器的 IP 地址,如192.168.1.2;
      本地 IP 地址,为本地计算机所使用网卡的 IP 地址,如192.168.1.100;
      必须要保障计算机与设备之间能够 ping 通;
      数据类型:
      标准MODBUS 协议的数据首地址是从 1 开始,但有些设备的首地址却从 0 开始;
      开关量以字为单位算;例如:数据类型=继电器(1/15),数据格式=字,开始地址=0,数据长度=3,则表示从继电器(1/15)开关量中的 1-48;
      模拟量以字为单位算;例如:数据类型=寄存器(3/16),数据格式=字,开始地址=0,数据长度=3,则表示从寄存器(3/16)模拟量中的 1-3;
      MODBUS 所支持的最大数据长度为 125 个字,但每种类型的设备所支持的最大数据长度有不尽相同,从 1-125 不等,所填写的数据长度>设备所支持的最大数据长度时,通讯失败;
      如果通讯设备支持的最大数据长度为 125 字,则设备号支持连续读写, 即最大通讯长度可以是 512 字;
  回复 引用 举报
ye_w 个人主页 给TA发消息 加TA为好友 发表于:2011-10-25 20:15:25 8楼
 

以上都是配置情况,具体显示就很简单啦,就不在浪费篇幅来一一描叙。当然如果大家有兴趣,可以提出来,我再一一解答,并乐于与大家一起交流

  回复 引用 举报
今生缘 个人主页 给TA发消息 加TA为好友 发表于:2011-10-25 23:01:26 9楼
  学习中,没弄过,希望有机会试试!
  回复 引用 举报
DJS13111373841 个人主页 给TA发消息 加TA为好友 发表于:2011-10-26 09:59:42 10楼
  希望讲讲s7-300.400方面的内容。
  回复 引用 举报
chshjobjob 个人主页 给TA发消息 加TA为好友 发表于:2011-10-27 22:49:01 11楼
  跟楼上有同感 ,希望讲讲s7-300/400有关这方面的内容。麻烦了各位!
  回复 引用 举报
welfare87 个人主页 给TA发消息 加TA为好友 发表于:2011-10-29 00:51:23 12楼
 

S7-200通过PC ACCESS与WinCC的以太网通讯

配置列表:PC Access、WinCC、CPU224CN、CP243-1。

1、在PC Access设置通讯方式

2、 设置PC Access本机地址和TSAP地址

3、为PC Access创建变量

     

4、测试变量

5、将变量导入WinCC

6、建WinCC画面

  回复 引用 举报
qiuhenan 个人主页 给TA发消息 加TA为好友 发表于:2011-10-29 07:05:44 13楼
  顶起!!!!!!!!!!!!!!!
  回复 引用 举报
djgyy 个人主页 给TA发消息 加TA为好友 发表于:2011-10-29 07:33:18 14楼
  引用 qiuhenan 的回复内容: 顶起!!!!!!!!!!!!!!!qiuhenan的签名档不求轰轰烈烈,但求无愧我心!



  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-29 09:40:34 15楼
 

那我就上传点NA400通过modbusTCP方式通信

NA400系列PLC通过ModbusTCP与常用组态通信

1.组态王通过MODbusTCPNA-400进行通信

注:软件测试版本说明

序号

名称

版本

1

PLC编程软件

NAPro 3.0

2

组态王编程软件

组态王6.53

 

1)写入PLC程序,并建立PLC配置文件;在文件夹PLCTest中;如下图所示;

2)连接好硬件,并用网线与个人电脑连接正常;

3)启动组态王6.5,建立工程项目;选择硬件COM中的莫迪modbusTCP,如下图所示;安顺序进行硬件配置;

4)建立变量表格。按照NA400的功能码与数据关系表;如下图

5)在组态数据库中建立数据词典;如下图所示;

6)建立测试界面;测试如下图所示;测试文件在KingViewTest中;

测试完毕;

  回复 引用 举报
bhdxzgp 个人主页 给TA发消息 加TA为好友 发表于:2011-10-29 09:42:31 16楼
 

本处还有大量关于NA200或者NA400通过modbus RTU和TCP与组态等软件通信的过程实例;

如有需要的话;和我联系;bhdxzgp@163.com

  回复 引用 举报
青岛黄工 个人主页 给TA发消息 加TA为好友 发表于:2011-10-31 10:02:19 17楼
 
我用松下FPX-C14T的PLC与PC进行链接通讯,通讯协议为松下内部专用MEWTOCOL协议。
首先,设置PLC通讯协议
刚上电,第一次下载时,从新设置一下通讯参数,点  [通讯设置]
如果上载PLC程序,可以不用设置通讯参数,如上图,可以自检通讯参数,自动通讯。
  回复 引用 举报
墨之殇 个人主页 给TA发消息 加TA为好友 发表于:2011-11-01 00:50:25 18楼
  首席支持叶总,我是你的粉丝。。。。。。。。。。
  回复 引用 举报
涛声依旧 个人主页 给TA发消息 加TA为好友 发表于:2011-11-01 07:33:36 19楼
  haohaoxuexi                    
  回复 引用 举报
yanwen0227 个人主页 给TA发消息 加TA为好友 发表于:2011-11-01 09:19:48 20楼
  在此向各位老师学习来了!
  回复 引用 举报
yihua2009 个人主页 给TA发消息 加TA为好友 发表于:2011-11-01 10:05:32 21楼
 

深圳市鼎泰克电子有限公司专业生产ZigBee无线模块,可用实现PLC与PC的无线串口通信应用,直接取代串口线。
地址:深圳市宝安区宝安大道卡罗大厦2A栋505-506室
电话:0755-29080800

手机:李小姐 13632516646 
Email:dtk001@163.com
QQ: 2925594696

网址: http://www.dtkcn.com

样品购买: http://dtkcn.taobao.com

  回复 引用 举报
wlc 个人主页 给TA发消息 加TA为好友 发表于:2011-11-01 15:39:43 22楼
 

全新原装欧姆龙PLC CP1H-XA40DR-A

全新原装欧姆龙PLC CP1H-XA40DR-A

产品型号:CP1H-XA40DR-A 品牌:日本欧姆龙

售后保修:质保一年

全新包装,正品行货,量大更优,欢迎选购!
QQ:2402098863

TEL:13636962573

http://www.fj-qzol.com/

http://qzol.taobao.com/



  回复 引用 举报
chenhuiyang1022 个人主页 给TA发消息 加TA为好友 发表于:2011-11-04 17:50:34 23楼
 

我使用台达PLC与电脑通讯,PLC软件版本为2.10.06,电脑上我使用串口调试助手
1.首先配置PLC的通讯模式,我使用RS232方式通讯将设置为如下模式

先将已经编译好的程序文件下载到PLC内,其中关于PLCD的COM1程序如下:
可能图有点看不清,即将HA6赋值给D1036(HA6代表:数据位为7位,偶校验,停止位一位,波特率为38400bps),并置为M1138(COM1通讯保持)。
2.设置电脑COM口,不过我使用串口调试工具,可以不进行设置。设置方式如下:右击打开我的电脑——选择管理——设备管理器——端口
点击属性——port settings,设置如下:
3.使用串口调试工具的人员可以省略第二步,设置如下:
以以下程序为例:
我们要对D99赋值1,查通讯协议说明书得到发送数据代码为06,D99的地址为1063H,故发送数据为:“:010610630001**\R”**为LRC检验码,校验码计算方式如下:01+06+10+63+00+01=7B,7B的二进制表示为0111 1011,取反得到1000 0100,再加1得到1000 0101即85H,所以,校验码为85H,发送的数据即为:“:01061063000185\R”。
不知道什么原因,我PLC设置的COM口为COM3,PLC程序以及其他程序也是用COM3能够通讯的,不过不知道为什么我用的串口调试助手却只有用COM4才能通讯。
断开连接,监视PLC数据,如下图所示:
通过这种方法,我们可以用相关软件或者电脑语言对PLC的寄存器值进行读取和写入。
  回复 引用 举报
玻璃的心 个人主页 给TA发消息 加TA为好友 发表于:2011-11-15 22:40:30 24楼
         一等奖3名,50MP获得者:

                                                           ye_w                       ye_w 
                                                          bhdxzgp                    bhdxzgp

                                                          chenhuiyang1022        chenhuiyang1022
        二等奖2名,10MP获得者: 
                                                           青岛黄工                  dingdan258
                                                            welfare87                 welfare87
                                                         


        三等奖0名,30积分获得者: 
                                                           

  回复 引用 举报
玻璃的心 个人主页 给TA发消息 加TA为好友 发表于:2011-11-15 22:45:55 25楼
  本期擂台中,本意是想像“chenhuiyang1022”的理解那样,让大家多了解PC和PLC的单纯的通信协议,但是“bhdxzgp”和“ye_w”两位在此基础上实现了组态软件和PLC的通信,从某种意义上来说,只要能实现和组态软件通信都是算完成要求的,因为PC和PLC通信上是组态软件和PLC通信的必要条件!
  回复 引用 举报
玻璃的心 个人主页 给TA发消息 加TA为好友 发表于:2011-11-15 22:49:53 26楼
  本期擂台到此为止,欢迎大家继续参与我们以后各期擂台
  回复 引用 举报
1039072807 个人主页 给TA发消息 加TA为好友 发表于:2018-05-23 11:59:47 27楼
 

我来学习一下       

  回复 引用 举报

周点击排行
周回复排行
    最新求助
      Advertisement