浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子驱动6SL3120-1TE15-0AA4

西门子驱动6SL3120-1TE15-0AA4

MPI(多点接口)是西门子内部使用的通信协议,物理层为RS-485。通过MPI网络的S7基本通信,S7-300可以用系统功能X_GET和X_PUT来读、写S7-200的存储区,*多可读、写76字节的数据,S7-200不需要编写通信程序。其优点是使用PLC自带的RS-485通信接口,不需要增加通信用的硬件,编程简单,容易实现。

1.通信参数的设置

用系统块设置CPU 224在MPI网络中的站地址为3。为了方便下载和监控,将S7-200、S7-300和计算机的通信速率均设置为19.2 kbit/s。需要将系统块下载到CPU,设置的参数才会起作用。

组态时将CPU 315-2DP连接到MPI网络上,设置MPI站地址为2。将设置的参数下载到CPU 315-2DP。

2.CPU 315-2DP读写CPU 224的V区的编程#p#分页标题#e#

在CPU 315-2DP的OB35中调用SFC 68“X_PUT”,将本站的DB 1的76字节数据发送到通信伙伴的DB 1的DBB100~DBB175,即CPU 224的VB100~VB175。调用SFC 67“X_GET”,读取CPU 224的VB200~VB275(即DB 1的DBB200~DBB275)中的数据,将它们存放到DB 2。执行OB35的时间间隔为默认的100ms。

    下面是CPU 315-2DP的循环中断组织块OB35的程序:

程序段 1:将本站的DB1中的数据写入CPU 224的#p#分页标题#e#V区

CALL  "X_PUT"                             

  REQ           :=TRUE                      

  CONT         :=TRUE                        

  DEST_ID    :=W#16#3                                //S7-200的MPI地址

  VAR_ADDR:=P#DB1.DBX100.0 BYTE 76       //S7-200要写入数据的VB100~VB175

  SD             :=P#DB1.DBX0.0 BYTE 76            //存放本站要发送的数据的地址区

  RET_VAL   :=MW2                      

  BUSY         :=M0.1                        

程序段 2:读取CPU 224的V区的数据,保存到本站的DB 2

CALL  "X_GET"                               

  REQ             :=TRUE                      

  CONT          :=TRUE                      

  DEST_ID     :=W#16#3                     

#p#分页标题#e#  VAR_ADDR:= P#DB1.DBX200.0 BYTE 76      //要读取S7-200的VB200~VB275

  RET_VAL    :=MW4                      

  BUSY          :=M0.3                        

  RD              := P#DB2.DBX0.0 BYTE 76           //保存读取的数据的地址区

为了验证通信是否实现,在初始化程序OB100将数据块DB 1的76字节数据发送区的字预置为W#16#3333,将DB 2的76字节数据接收区复位为0。

3.CPU 224的程序

为了验证通信是否实现,在CPU 224的OB1中,在第一个扫描周期将发送数据区VW204~VW274预置为16#2222,将接收数据区VW100~VW174清零。

LD     SM0.1                                       

FILL     #p#分页标题#e#16#2222, VW204, 38                  

FILL     16#0, VW100, 38                      

可以用CPU 315-2DP的变量表和CPU 224的状态表来监视参与通信的存储区。

    我第1次做实验的时候,很顺利地一下就成功了。总的感觉是只要组态和编程没有问题,通信很容易实

安装CFC编程语言后,系统将会默认安装CFC Library功能库。该功能库包含ELEM_300、ELEM_400和ELEMENTA。其中,ELEM_300专门用于S7 300系列的CPU编程,ELEM_400专门用于S7 400系列的CPU编程,ELEMENTA则为通用功能块,对控制器无具体要求。


图 1 CFC Library包含的功能块

在使用上述功能块进行编程时,需要注意如下事项:
1. 对S7 300控制器编程,只允许使用ELEM_300和ELEMENTA下的功能块,不允许使用ELEM_400下任何功能块,即便功能块号和功能描述相同;反之亦然,对S7 400控制器编程,则只允许使用ELEM_400和ELEMENTA下的功能块,不允许使用ELEM_300下任何功能块。实际使用过程中,可以通过打开功能块的属性对话框,检查Author属性是否和控制器类型匹配,否则相应的功能可能无法正常运行。


图 2 功能块的Author属性

2. 使用ELEM_300下的所有功能块对S7 300控制器进行编程时,还需额外注意如下步骤。否则,该类功能块将不能进行正常的初始化,甚至无法正常工作。
a) CFC中除掉用正常所需的功能块外,还需额外调用ELEM_300下的RESTART(FC70)功能块,并设置其调用位置,双击如下图所示的位置。


图 3 调用RESTART功能块

b) 系统将打开如下的运行顺序编辑器对话框,并定位到该功能块在OB3x中的安装位置。在该功能块上点击右键Delete,删除该功能块在循环OB3x中的安装。


图4 删除该功能块在循环OB3x中的安装

c) 关闭该对话框回到CFC编辑器下,检查该功能块的安装位置是否变更为OB100。


图 5 RESTART的安装位置OB100

d) 调用ELEM_300下的功能块后,将不再允许用户使用M存储区的MW0,该字被这类功能块占用,请检查程序中是否使用了MW0字。
e) 检查硬件组态中CPU属性设置Cycle/Clock Memory页面下的Clock Memory是否激活,如果激活则不能使用默认的MB0。


图 6 Clock Memory不能使用默认的MB0

3. 使用CFC Library下的具有SAMPLE_T管脚的如下功能块编程时,需要注意其必须在循环OB3x中调用,否则其对应的时间功能将不能正常工作。

功能块   释
AFP(FB10)脉冲发生器
CONT_C(FB1)连续PID控制功能块
CONT_S(FB2)步进PID控制功能块
PULSEGEN(FB3)PID控制脉冲功能块
TIMER_P(FB5)定时器(ELEMENTA/IMPULS)

表 1 带有SAMPLE_T管脚的功能块


a) 调用后,需要检查如下位置所示是否为循环OB3x。


图 7 功能块的安装位置

b) 编译CFC时,CFC V6.1及以下的版本,需要激活如下的Update Sampling Time选项。


图 8 激活Update Sampling time选项

c) 通过编译,系统将会自动更新SAMPLE_T管脚为该功能块的扫描周期,单位为秒。例如,该功能块的循环周期为100ms一次,则其SAMPLE_T的值将会自动设置为0.1。可以通过功能块上点击鼠标右键 属性,打开属性对话框,切换到I/Os页面,查看SAMPLE_T管脚的值。


图 9 打开功能块属性对话框


图 10 检查SAMPLE_T管脚Value列的值

注:该管脚为系统维护的功能管脚,其决定了功能块的定时准确性,不允许人为离线或在线修改。
如上所述为使用CFC Library时的注意事项,更多信息请参考CFC Library的在线帮助或访问附录所示西门子服务网站查找相关信息


展开全文
优质商家推荐 拨打电话