首页 上一页 1 2 下一页 尾页

(已结帖)工控PLC擂台第39期--PLC通信中的打包通信和不打包通信 点击:3158 | 回复:35



玻璃的心

    
  • 精华:44帖
  • 求助:2帖
  • 帖子:1275帖 | 5801回
  • 年度积分:0
  • 历史总积分:57777
  • 注册:2010年6月11日
发表于:2011-04-28 22:30:24
楼主

根据通信中数据传输速率、数据的吞吐量得大小,我们可以见不同的网络完成打包通信和不打包通信。
这里所谓的不打包通信是指直接利用传送指令实现的数据的读写,这类的通信每次传送的最大字节数比较小(如西门子PLC在不打包通信时最大只能传送4个字节);打包通信是指通过调用系统功能或相关更强大的功能指令实现一次能传送更多数据的传送。(如西门子PLC通过调用SFC14,SFC15来实现数据的打包通信)。

本期擂台:请根据你所了解的通信情况,给出一个打包通信的例子或不打包通信的例子(最好是打包通信),项目和实验的仿真例子都可以!回答的最好最全面者首先拿大奖!
PLC品牌不限。

工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

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

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



楼主最近还看过



welfare87

  • 精华:0帖
  • 求助:4帖
  • 帖子:44帖 | 2827回
  • 年度积分:0
  • 历史总积分:25853
  • 注册:2009年2月20日
发表于:2011-06-08 13:16:32
21楼

续楼上

在操作模式页面中,将其设置为DP SLAVE模式,并且选择“Test,commissioning,routing”,是将此端口设置为可以通过PG/PC在这个端口上对CPU进行监控,以便于我们在通讯链路上进行程序监控。下面的地址用默认值即可。


然后选择Configuration页面,创建数据交换映射区。


这里我们创建了2个映射区,图中的红色框选区域在创建时是灰色的,包括上面的图中的Partner部分创建时也是空的,在主站组态完毕并编译后,才会出现图中所示的状态。由于我们这里只是演示程序,所以创建的交换区域较小。


组态从站之后,再组态主站。插入CPU时,不需要创建新的PROFIBUS网络,选择从站建立的第二条(也就是准备用来进行通讯的MPI/DP端口创建的那条)PROFIBUS网络即可。组态好其它硬件,确认CPU的DP口处于主站模式,从窗口右侧的硬件列表中的已组态的站点中选择CPU 31X,拖放到主站的PROFIBUS总线上, 

这时会弹出链接窗口,选择以组态的从站,点击Connect按钮,


然后进入Configuration页面,可以看到前面在从站中设定的映射区域,逐条进行编辑(Edit…),确认主从站之间的对应关系。主站的输入对应从站的输出,主站的输出对应从站的输入。
至此,硬件的组态完成,将各个站的组态信息下载到各自的CPU中。通过NetPro可以看到整个网络的结构图。

welfare87

  • 精华:0帖
  • 求助:4帖
  • 帖子:44帖 | 2827回
  • 年度积分:0
  • 历史总积分:25853
  • 注册:2009年2月20日
发表于:2011-06-08 13:20:26
22楼

续楼上

2.编写程序。
硬件组态完毕,下载,PLC运行之后,数据并不会自动交换。需要通过程序来执行。在组态中,input和output区域,也并不是实际硬件组态中的硬件地址,也就是说,input和output并不代表I/O模块的地址和数据。但是映射区域组态用到的input和output地址,同时也占用了I/O模块的组态地址,就是说,映射区的地址和I/O地址是并行的,不能重复使用。所以最好在硬件的I/O模块全部组态完毕之后再组态映射区。
映射区的数据交换是通过系统功能块SFC14(DPRD_DAT——Read Consistent Data of a Standard DP Slave)和SFC15(DPWR_DAT——Write Consistent Data to a Standard DP Slave)实现的。
SFC14和SFC15是成对使用的,一个发送一个接收,缺一不可。数据的通讯也是交互的,可以相互交换数据。本例中,我们通过简单的数据来验证通讯结果。
首先,我们在程序中插入数据区DB1,前面我们只建立了2个字(2 Word)的映射区,于是我们建立如下内容的DB1,为了查看的方便,DB1的前半部分作为接收数据的存储区,后半部分用作发送数据的存储区。


在317和315中我们插入同样的DB1,然后分别在OB1中编写通讯程序。
315(主站)中的程序如下:

 

317中的程序如下:


其中,程序的LADDR地址,对应的是硬件的映射区组态时本站的Local Addr中的地址,从站的Local Addr我们组态的是0,对应的Partner Addr也就是主站的地址是4。需要注意的是这里的地址是需要用16进制的格式来表示的,我们组态时是用10进制表示的。
完成之后,我们在各站中插入OB82、OB86、OB122等程序块,这些是为了保证当通讯的一方掉电时,不会导致另一方的停机。完成之后,将所有的程序分别下载到各自的CPU中,个站切换到运行状态,通过PLC监控功能,设定数据之后,我们监控的结果如下:上面的表格内容为主站315的数据,下面的是从站317的数据。


可以看到,两个站都分别将各自的DBB4—DBB7数据发送出去并被另一方成功接收后存储在各自的DBB0—DBB3中。

验证中,我们将一个站的CPU切换到STOP状态,可以看到,另一个站的CPU硬件SF指示灯报警,但PLC正常运行不停机。待该站恢复之后,报警自动消失。

cqu_rockwell

  • 精华:16帖
  • 求助:0帖
  • 帖子:678帖 | 8694回
  • 年度积分:0
  • 历史总积分:57901
  • 注册:2010年6月30日
发表于:2011-06-08 21:11:14
23楼
本例以S7-400 为主站,S7-300 为从站为例来说明打包式发送和接收的组态步骤。
打包式发送与接收主要用到SFC15(打包发送)和SFC14(打包接收)。  
    先组态从站S7-300。
   
    1、新建项目“打包式发送与接收例”,插入S7-300 站点。
   
   

在新窗口浏览图片


   
    2、双击“硬件”进入“HW Config”(硬件组态)环境,组态S7-300的硬件(先放入导轨,再放入电源模块,最后放入CPU 模块)。在放入CPU 模块时,会出现“属性-RPOFIBUS 接口 DP”对话框(设置CPU的地址及通信波特率),可以先点击“取消”以后再设置。
   
   

在新窗口浏览图片


   
    3 、双槽架中的DP 项, 弹出“ 属性- DP ” 对话框。
   
   

在新窗口浏览图片


   
    4、,点击“常规”标签中的“属性…”按钮,出现“属性-Profibus接口”对话框,设置从站的地址。双击进入下一步
   
   

在新窗口浏览图片


   
    5、点击“新建…”,出现“属性-新建子网PROFIBUS”对话框,设置传输传输的波特率及配置文件(DP)。
   
   

在新窗口浏览图片


   
    6、点击两次“确定”,重新回到第三步的画面。点击“工作模式”标签,选择为“DP 从站”模式。设置从站的地址
   
   

在新窗口浏览图片


   
    7、点击“组态”标签,进行通信接口数据区的组态。
   
   

在新窗口浏览图片


   
    8、点击“新建…”按钮,先组态输入数据区。
   
   

在新窗口浏览图片


   
   
    9、点击第7 步中的“新建…”,组态输出数据区域。
    地址类型选择输入一致性选择全部以上选择完后点击确定
   
   

在新窗口浏览图片


   
 

cqu_rockwell

  • 精华:16帖
  • 求助:0帖
  • 帖子:678帖 | 8694回
  • 年度积分:0
  • 历史总积分:57901
  • 注册:2010年6月30日
发表于:2011-06-08 21:13:29
24楼
10、从站S7-300 发送和接收数据区组态完后如下图所示:
    地址类型选择输出,一致性选择全部,以上选择完后后确定
   
   

在新窗口浏览图片


   
   
    从站组态完毕,再组态主站。
   
    11、和组态从站一样,先组态主站S7-400 的硬件。
   
   

在新窗口浏览图片


   
    12、在组态CPU 模块时,会自动弹出“属性-PROFIBUS 接口”,点击子网中已有的PROFIBUS(1),再点击“属性…”,设置通讯参数(波特率和配置文件)。
   
   

在新窗口浏览图片


   
    13、从站S7-300 挂于主站网络中。
   
   

在新窗口浏览图片


   
   
    14、从站挂于主站网络后,会自动弹出“DP 从站属性”窗口,点击“连接”标签,已经组态的所有未连接的从站显示在列表中。
    鼠标按住此处,拖至PROFIBUS 图标,已经组态的从站(未连接)
   
   

在新窗口浏览图片


   
    15、选中要连接的从站,再点击“连接”按钮,显示连接完成后的状态信息。
   
   

在新窗口浏览图片


   
    16、点击“组态”标签,组态主站的数据接收和发送区。
    连接状态信息
   
   

在新窗口浏览图片


   
    17、选中第一行,点击“编辑...”按钮,组态主站的数据发送区。组态完后,点击“确定”。
   
   

在新窗口浏览图片


    
    
   

cqu_rockwell

  • 精华:16帖
  • 求助:0帖
  • 帖子:678帖 | 8694回
  • 年度积分:0
  • 历史总积分:57901
  • 注册:2010年6月30日
发表于:2011-06-08 21:16:21
25楼
 18、同样,选中第16 步中的第二行,组态主站输入数据区的地址。组态完的结果如下。和从站地址类型相对应,选为输出
    和从站一样
   
   

在新窗口浏览图片


   
   
    至此,主站和从站的数据接收和发送区已经组态完毕,其对应关系如
    下:
    主站 从站
    QB0~QB4 IB0~IB4
    IB0~IB6 QB0~QB6
    在从站中编写的程序范例如下:
   
   

在新窗口浏览图片


   
    主站的输出和
    输入数据区(上
    输出下输入)
    从站的输出和
    输入数据区(上
    输入下输出)
   
    主站中编写的程序范例如下:
   
   

在新窗口浏览图片


   
    符号说明:
    LADDR 组态数据区的首地址(必须以十六进制格式输入地址)
    RET_VAL
    如果在激活功能期间出现错误,则返回值将包含一个错
    误代码。
    RECORD
    已读取的用户数据的目标区域。必须与用STEP 7 为选定
    模块配置的长度完全相同

花开_花落

  • 精华:1帖
  • 求助:1帖
  • 帖子:65帖 | 1155回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2011-06-08 21:45:50
26楼
                         

花开_花落

  • 精华:1帖
  • 求助:1帖
  • 帖子:65帖 | 1155回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2011-06-08 21:46:53
27楼
                      

hjcan

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 292回
  • 年度积分:0
  • 历史总积分:2940
  • 注册:2011年2月21日
发表于:2011-06-08 22:32:41
28楼
 
西门子6SE440变频器在天津无缝140机组中的应用
采用SFC14和SFC15 实现打包数据传输
 
1 系统硬件组态
本系统采用变频控制,保证除鳞参数-打击力,喷水密度等完全符合设计要求,且有一定的余量,满足用户将来发展的需要本系统可以分为电控系统和工控系统两部分。电控系统由两台变频器控制组成。主要元件采用西门子公司的6SE440系列变频器。工控系统由西门子公司的S7-300系统PLC完成对整个系统的信号采集和处理,通过PROFIBUS-DP现场总线传至上位机。
电控系统:
电控系统由两台变频器控制柜组成,用两台西门子公司的6SE70系列变频器控制三台电机,调节电机转速达到水压恒定和节能的作用(两用一备)。

图 1 高压水除鳞电控系统
其中PLC采用西门子S7-300CPU315-2DP,通讯模块采用PROFIBUS-DP接口模块,用于安装在变频器6SE440上,使之成为PROFIBUS-DP从站。系统采用PROFIBUS网进行PLC,ET200S远程站及6SE440变频器间的数据交换与通讯,主电机的传动及现场级监控设备与主PLC用PROFIBUS总线相连。PROFIBUS有极高的传输速率,主PLC与各主传动系统之间的设定值、指令和数据均通过PLC的ROFIBUS-DP网络接口进行传送, 实现网络控制,系统响应速度快;在高压水除鳞箱设有ET200S远程站,在提高系统响应速度的同时,也增加了系统的安全可靠性。
将6SE440连接到DP网上,并组态6SE440的通讯区,通讯区的设置与应用方式有关,设定值和控制字以及它们的反馈数据存放在PZD区,如果需要读写6SE440参数,则需要PKW数据区。
在本系统中,采用0PKW、2PZD,6SE440地址为10。
PKW数据区为PIW268—PIW271,PQW268-PQW271.
CBP板选为6SE640X-1PB00-0AA0 , PP0 3 :0 PKW/2 PZD。
 

hjcan

  • 精华:1帖
  • 求助:0帖
  • 帖子:13帖 | 292回
  • 年度积分:0
  • 历史总积分:2940
  • 注册:2011年2月21日
发表于:2011-06-08 22:35:40
29楼
2软件设定
2.1  变频器参数优化
变频器功能参数很多,一般都有数十甚至上百个参数供用户选择。实际应用中,没必要对每一参数都进行设置和调试,多数只要采用出厂设定值即可。但有些参数由于和实际使用情况有很大关系,且有的还相互关联,因此要根据实际进行设定和调试
2.2一些重要参数的设定[2]
P0010  30 恢复到工厂缺省值
P0003  3 允许访问所有参数
P0700  6 选择控制命令来源(远程控制,从CB来 )
P1000  6 选择频率设定值来源(远程控制,从CB来 )
P0918  10 Profibus从站地址(须要与硬件组态报持一至)
P0100  0  变频器50Hz ,功率单位kW
P0304  380 工作电压
P0307  18. 5 电机额定功率
P0310  50 电机额定频率
P0311  1480 电机额定转速
P1080  0 电机最小转速对应频率
P1082  50 电机最大转速对应频率
P1237  1 投入制动电阻功能
P1120  240 设置斜坡上升时间
P1121  240 设置斜坡下降时间
 
2.3 软件编程
6STEP7 V5.3程序中实现对变频器的控制。
通过PROFIBUS DP调用用功能块实现在主、从站之间实现双向数据传送。
其中:
PZD1输出:输出命令到6SE440。控制电机的启停、正反转等。
PZD2输出:输出主设定值(频率设定)到6SE440。
PZD1输入:6SE440当前的状态(运行,故障,报警等)。
PZD2 输入:实际的速度反馈。

图2 在OB1 中调用SFC14和SFC15
其中,SFC14用于读PROFIBUS从站的数据。
SFC15 用于将数据写入PROFIBUS从站[3]
功能块参数说明:
SFC14中W#16#10C为十六进制的读起始地址, DB2.DBW14为状态反馈值,P#DB2.DBX330.0 BYTE 12为从DB2.DBX=330.0开始的12个状态字,SFC15中W#16#10C为写起始地址。P#DB2.DBX346.0 BYTE 12为从DB2.DBX346.0开始12 个控制字。在变频器的状态字中,位0表示“开机准备”信号(高电平有效)。位2表示“运行”信号(高电平有效),位3表示“故障”信号(高电平有效),位7表示“报警”信号(高电平有效)。
当M0.0为1时执行程序,在本例中设定值和控制字可以从数据块DB2中传送,而具体的设定值信息可以参考变频器手册。状态字和设计值可从DB2.DBW330和DB2.DBW332读出。要对变频器其他不同的参数进行设置,只要改变RECORD地址里的控制字即可。
另外在上位机软件WINCC上还可以采集变频器的速度值和电流值。DB2.DBW348为设定的速度值。DB2.DBW332为实际显示的速度值,DB2.DBW334为实际显示的电流值。
在变频器的控制字中,位0表示ON/OFF命令,位3表示使能命令,位7表示故障确认命令,位15表示从BOP面板上来的控制命令,上述命令均是高电平有效。位1,位2 表示OFF快停命令,低电平有效。

zxjjynl

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 561回
  • 年度积分:0
  • 历史总积分:2626
  • 注册:2011年3月06日
发表于:2011-06-08 22:42:35
30楼

丹佛斯S7-300C与Danfoss FC300 PROFIBUS-DP通讯 (调用sfc14、sfc15)

 

  丹佛斯FC系列变频器,作为丹佛斯变频器家族的一种新型产品,继承了以往5000系列变频器成熟的总线通讯技术,作为5000系列的替代产品,其在PROFIBUS上的基本协议没有变化,参数寻址和GSD文件有所不同,V1版本增加了与第三方设备网络组态的灵活性,可以作为国际通用总线PROFIBUS从站,挂靠在PROFIBUS网络中,方便的实现过程控制的需要,本文以西门子S7-300做主站,介绍怎样通过PROFIBUS实现通讯。

    1 示例系统的体系结构
   



    本例中选用S7-300 CPU313-2DP作为PROFIBUS-DP 主站,连接一个FC300变频器,连接多个FC300时与之相同。

    2 软件版本描述

    需要软件:
    STEP7 V5.2
    需要硬件:
    1:S7-300 CPU313-2DP
    2: FC300
    3: PROFIBUS-DP 接口模块,用于安装在FC300上,使之成为PROFIBUS-DP从站。
    3 组态主站系统
    打开SIMATIC MANAGER, 通过FILE菜单选择NEW新建一个项目,在NAME栏中输入项目名称,将其命名为TEST,在下方的Storage Location中设置其存储位置。
    




    项目屏幕的左侧选中该项目,在右键弹出的快捷菜单中选择I nsert New Object插入SIMATIC 300 Station,可以看到选择的对象出现在右侧的屏幕上。

   


    双击右侧生成的hardware图标,在弹出的HW config 中进行组态,在菜单栏中选择“View”选择“Catalog”打开硬件目录,按订货号和硬件安装次序依次插入机架、电源、CPU。

    



    插入CP时会同时弹出组态PROFIBUS画面, 选择新建一条PROFIBUS(1),组态PROFIBUS站地址,点击“Properties”键组态网络属性如下图:

    



    在DP属性的Operating Mode中,将其设为DP master

    



    在本例中主站的传输速率为“1.5Mbps”,“DP”行规,无中继器、OBT等网络元件,点击“OK”键确认并存盘。


    4 组态从站

    在DP网上挂上FC300, 并组态FC300的通讯区,通讯区与应用有关,如果需要读写FC300参数,则需PCV区,如果除设定值和控制字以外,还需传送其他数据,则要选择PCD。

    在选项中有 1,WHOLE CONS.(PCD,PCV 数据是连续的,都有调用SFC14,15)2,WORD CONS. (只有PCV数据是连续的,不需要调用SFC14, 15)
    在本例中,采用4PCV,2PCD ;FC300地址为4。

    


    



    




   


   

zxjjynl

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 561回
  • 年度积分:0
  • 历史总积分:2626
  • 注册:2011年3月06日
发表于:2011-06-08 22:48:51
31楼

    5 FC300参数设置


    要使变频器能够用PLC通过Profibus来控制,变频器也需要一定的参数设置才能实现,变频器初始化后需要注意以下参数设置:

    P801 命令源: 数字或者控制字 (或者仅仅控制字)

    P810 控制字格式: FC或者Profidrive

    P918 站号: 4 (必需与硬件组态时保持一致)


    6 程序的编写
    对PCD (过程数据)的读写:
       a. 在Step7 中对PCD (过程数据)读写参数时调用SFC14和SFC15
    b. SFC14(“DPRD_DAT”)用于读Profibus 从站(FC300)的数据
    c. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站(FC300)
    d. 硬件组态时PCD的起始地址:W#16#108(即264)

    1. 建立数据块DB1,将数据块中的数据地址与从站(FC300)中的PCD、PCV数据区相对应。

    



    2. 在OB1中调用特殊功能块SFC14和SFC15,完成从站(FC300)数据的读和写:

    




    其中:
     LADDR 表示:硬件组态时PCD的起始地址(W#16#108即264);
    RECORD 表示:数据块(DB1)中定义的PCD数据区相对应的数据地址;
     RET_VAL 表示:程序块的状态字,可以以编码的形式反映出程序的错误等状态。
     在本例中设定值和控制字可以从数据块DB1中传送.
     DB1.DBW20 设为047E 再变为047F后DB1.DBW22 中的频率值将输出。 (810参数在profidrive的控制字协议下)
     DB1.DBW20 设为047C后DB1.DBW22 中的频率值将输出(810参数在fc的控制字协议下)
    状态字和实际值可从DB1.DBW8, DB1.DBW10读出。要对变频器其他不同项目的参数进行设置,只要编程改变RECORD地址里的数值即可。
    对PCV (参数区)读写
     a.在Step7 中对PCV (参数区)读写参数时同样调用SFC14和SFC15
        b. SFC14(“DPRD_DAT”)用于读Profibus 从站的数据
     c. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站
     d. 硬件组态时PCV的起始地址:W#16#108(即264)
     读写过程和对PCD (过程数据)的读写相同,只要编程改变RECORD地址里的数值即可.
    



 7 数据传送规则

    对PCV区数据的访问是同步通讯,即发一条信息,得到返回值后才能发第二条信息。
    PCV为4个字,定义如下:
    


    A:常用值:1、2、3、6、7、8
    其中:1:读请求 6:读请求(有数据分组)
    2:写请求(单字) 7:写请求(有数据分组、单字)
    3:写请求(双字) 8:写请求(有数据分组、双字)
    PNU:参数号: 直接将数值转换为十六进制即可; B: 通常为0 C:参数索引选择位:选择数组参数所用的索引值

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2011-06-09 20:34:13
32楼
从某种意义上来说西门子PLC只要有SFC14和SFC15都运用了打包通信,因为西门子正是运用SFC15进行数据的打包,SFC14正是实现数据的解包。看了上面的几位也就是钻了这个控制,所以发的例子不是介绍打包通信,只是涉及打包通信。不过也算是运用了吧!

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2011-06-09 20:45:25
33楼
一等奖1名,50MP获得者:
彩虹                       纪强



二等奖5名,10MP获得者:
welfare87              welfare87
cqu_rockwell        cqu_rockwell 
 zxjjynl                     zxjjynl
花开_花落             the_wise
hjcan                      hjcan



三等奖1名,30积分获得者:
happy-1437               happy-1437

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:962帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2011-06-09 20:46:17
34楼
本期擂台到此为止,恭喜以上获奖的朋友,希望大家继续参加我们以后的各期擂台!

ggsx2008

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 19回
  • 年度积分:3
  • 历史总积分:21
  • 注册:2009年10月28日
发表于:2014-03-25 09:47:29
35楼

学习了学习了学习了学习了学习了学习了学习了


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页