热门搜索:

上海西邑电气技术有限公司成立于1996年。在西门子公司广大同仁和工控领域各界朋友的关怀下埋头发展,一路走来已成西门子合作伙伴中的佼佼者。总部设在上海,办公面积1500多平方米,员工150余人。

    西门子S7-1200SM1231模块

    更新时间:2020-09-21   浏览数:103
    所属行业:机械 电工电气 工控系统及装备
    发货地址:上海市金山区  
    产品规格:西门子S7-1200SM1231模块
    产品数量:100.00台
    包装说明:全新原装
    单 价:面议

    西门子S7-1200SM1231模块

    《销售态度》:质量保证、诚信服务、及时到位!
    《销售宗旨》:为客户创造价值是我们永远追求的目标!
    《服务说明》:现货配送至全国各地含税(16%)含运费!
    《产品质量》:原装正品,全新原装!
    《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!

    blob:http://m.b2b168

    LOGO ! 0BA8 FS6与S7-1200之间的S7通讯(LOGO!做客户机)

    S7协议是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议。

    注意:
    1.LOGO!从 0BA7版本才开始支持以太网的S7通信,0BA6及以前版本的LOGO!不支持以太网S7通讯。
    2.本文仅介绍LOGO!0BA8与S7-1200 CPU之间的 S7通信。

    LOGO!与S7-1200通讯主从站编程包含电路图模式和网络模式两种方法。

    编程环境:

    软件版本: LOGO! soft comfort V8.2,STEP7 Portal V14 SP1

    固件版本:LOGO! 0BA8 FS06,1215C DC/DC/DC V4.2

    以太网S7通讯:S7-1200作为服务器,LOGO!作为客户机(电路图模式)

    1.使用LOGO!软件新建一个项目,建立S7连接,选中电路图右键-以太网连接,如图1所示。

    图.1

    a.设置本地IP地址和子网掩码

    b.右键单击以太网连接,添加客户端连接

    c.添加S7连接

    2.设置服务器的TSAP号及IP地址,添加传输的数据区

    图.2

    a.设置远程服务器的TSAP号码和IP地址(注意:S7-1200预留给S7连接两个TSAP地址:03.01和03.00),这里设置伙伴的 TSAP:03.00。

    b.设置数据传输区域。

    可以配置传输变量类型VB, MB, QB, IB

    可在此定义数据传输连接的属性。(读取:客户端 <- 服务器,写入:客户端 -> 服务器)

    在客户端连接中多可创建 32 个数据传输。

    在读取过程中,本地主机模块读取并存储来自远程服务器的信息;在写的过程中,本地主机模块将数据写入远程服务器。

    可通过定义对应的列在本地主机模块或远程服务器上存储数据。每一数据传输的大传输数据长度为 212 字节。

    S7-1200侧编程

    1.S7-1200作为服务器不需要编写通讯程序,需要注意S7-1200设备组态里勾选允许远程来自远程对象的PUT/GET通信访问,如图3所示。

    图.3

    数据监控

    LOGO!0BA8及S7-1200侧下载程序,监控通讯数据,如图4所示。

    图.4

    以太网S7通讯:S7-1200作为服务器,LOGO!作为客户机(网络视图模式)

    1.新建项目,添加两台新设备,LOGO! 0BA8 FS06与S7兼容性设备,如图5所示。

    图.5

    a.添加两台新设备,LOGO8 FS4与S7_兼容性设备.如需编程在网络项目里LOGO!8.FS4_1电路图里编程即可。

    b.把两个CPU使用连线拖动连接,左侧CPU为客户机,右侧为服务器

    c.双击该连接线,打开数据配置页,如图6所示

    图.6

    2.LOGO!0BA8及S7-1200侧下载程序后监控通讯状态。

    如果LOGO!主机模块有显示屏,除了如图4监控两边的通讯数据外,还可以通过面板上的菜单诊断-软件-数据连接查看状态,如图7所示

    S7-200 SMART CPU与S7-300/400以太网接口进行S7通信

    S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。
    经过测试发现S7-300/400通过集成的PN口或CP343-1/CP443-1与S7-200 SMART PLC 之间的S7通信也是可以成功的, 但是需要S7-300/400侧编程调用PUT/GET指令。

    注意:
    1.S7-200 SMART CPU 与S7-300/400 CPU 之间的S7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的任何危险需要有客户自己承担!
    2.S7-200 SMARTPLC V2.0 版本才开始支持PUT/GET通信,V1.0版本的CPU需要升级固件后方可支持PUT/GET。
    3. S7-300/400若采用CP通信时,则需要采用Standard或Advanced类型通信模块,CP343-1 Lean模块不支持。 
    4.本文仅介绍S7-300集成PN口与S7-200 SMART CPU S7通信。

    S7通信介绍

    S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议,主要用于S7-300/400PLC之间的通信。
    S7-300/400通过以太网接口与S7-200 SMART PLC 之间的S7通讯经过测试是可以成功的,但是需要S7-300/400侧编程调用PUT/GET指令,见表1所示。
    表 1 PUT和GET :

    S7-400 S7-300 描述 简要描述
    SFB 14 FB 14 读数据 单边编程读访问。
    SFB 15 FB 15 写数据 单边编程写访问。

    S7-300/400根据使用通信接口(集成的PN口或CP343-1/CP443-1)不同,调用的功能块来源也不同。
    通信接口为S7-300 集成PN接口时,需要使用Standard Library中PUT/GET指令,如图1所示。

    图1 S7-300PN接口需采用Standard Library

    通信接口为S7-300 CP通信模块时,需要使用SIMATIC_NET_CP 库中PUT/GET指令,如图2所示。
     西门子S7-1200SM1231模块
    图2 S7-300 CP模块接口需采用SIMATIC_NET_CP库

    S7-400 CPU不区分通信接口,需要使用System Function Blocks 中的SFB14/SFB15指令块,如图3所示。
     
    图3 S7-400 需采用SFB程序块

    硬件及网络组态

    本文以采用1个315-2PN/DP,1个S7-200 SMART PLC为例,介绍它们之间的S7通信。 
    在STEP7中创建一个新项目,项目名称为S7-300-SMART。插入1个S7-300站,在硬件组态中插入CPU 315-2 PN/DP。如图4所示。 

    图4 STEP7 项目中插入S7-300站点

    设置CPU 315-2PN/DP的IP地址:192.168.0.1,如图5所示。硬件组态完成后,即可下载该组态。 

    图5 设置CPU PN IP地址

    打开“NetPro”设置网络参数,选中CPU 315-2PN/DP,在连接列表中建立新的连接。步骤如图6所示。 

    图6 NetPro组态视图中插入新连接

    选择 Unspecified  站点,选择通讯协议 S7 connection,点击 Apply,如图7所示。 

    图7 组态新连接

    在弹出的S7 connection属性对话框中,勾选 Establish an active connection,设置Partner address:192.168.0.2(S7-200 SMART PLC IP 地址),如图8所示。 

    图8 设置S7连接参数
    点击 "Address Details" ,再弹出来的对话框设置 Partner 的 Slot 为1,如图9所示。点击 OK即可关闭该对话框。 

    图9 设置“address details”参数

    网络组态创建完成后,需要编译,如图10所示。 

    图10 保存并编译连接

    网络组态编译无错,鼠标先点击 CPU 315-2PN/DP ,然后点击下载按钮下载网络组态,步骤如图11所示。 

    图 11 下载组态连接

    程序编程

    可以通过SFB/FB 14 "GET",从远程CPU中读取数据。
    S7-300:在REQ的上升沿处读取数据。在REQ的每个上升沿处传送参数ID、ADDR_1和RD_1。在每个作业结束之后,可以分配新数值给ID、ADDR_1和RD_1参数。
    S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴CPU。远程伙伴返回此数据。在下一个SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。必须要确保通过参数ADDR_i和RD_i定义的区域在长度和数据类型方面要相互匹配。
    通过状态参数NDR数值为1来指示此作业已完成。只有在前一个作业已经完成之后,才能重新激活读作业。远程CPU可以处于RUN或STOP工作状态。如果正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。

    通过使用SFB/FB 15 "PUT",可以将数据写入到远程CPU。
    S7-300:在REQ的上升沿处发送数据。在REQ的每个上升沿处传送参数ID、ADDR_1和SD_1。在每个作业结束之后,可以给ID、ADDR_1和SD_1参数分配新数值。
    S7-400:在控制输入REQ的上升沿处启动SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴CPU。 远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要确保通过参数ADDR_i和SD_i定义的区域在编号、长度和数据类型方面相互匹配。
    如果没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数DONE来指示,其数值为1。只有在后一个作业完成之后,才能再次激活写作业。远程CPU可以处于RUN或STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过ERROR和STATUS输出表示。
    打开SIMATIC 315 PN-1的OB1,在OB1中依次调用FB14,FB15如图12、图13所示:

    图12 FB14调用
    表2.FB14参数说明 :

    参数

    描述

    数据类型

    存储区

    描述

    REQ

    INPUT

    BOOL

    I、Q、M、D、L

    上升沿触发调用功能块

    ID

    INPUT

    WORD

    M、D、常数

    地址参数ID

    NDR

    OUTPUT

    BOOL

    I、Q、M、D、L

    为1时,接收数据成功

    ERROR

    OUTPUT

    BOOL

    I、Q、M、D、L

    接收到新数据

    STATUS

    OUTPUT

    WORD

    I、Q、M、D、L

    故障代码

    S7-300: 
    ADDR_1
    S7-400: 
    ADDR_i
    (1 ≤ i ≤ 4)

    IN_OUT

    ANY

    M、D

    I、Q、M、D、 
    T、C

    从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。

    S7-300: 
    RD_1
    S7-400: 
    RD_i
    (1 ≤ i ≤ 4)

    IN_OUT

    ANY

    S7-300:M、D
    S7-400 I、Q、 
    M、D、T、C

    本站接收数据地址


    图13 FB15调用
    表3.FB15参数说明 :

    参数

    描述

    数据类型

    存储区

    描述

    REQ

    INPUT

    BOOL

    I、Q、M、D、L

    上升沿触发调用功能块

    ID

    INPUT

    WORD

    M、D、常数

    地址参数

    DONE

    OUTPUT

    BOOL

    I、Q、M、D、L

    为1时,发送完成

    ERROR

    OUTPUT

    BOOL

    I、Q、M、D、L

    为1时,有故障发生

    STATUS

    OUTPUT

    WORD

    I、Q、M、D、L

    故障代码

    S7-300: 
    ADDR_1
    S7-400: 
    ADDR_i
    (1 ≤ i ≤ 4)

    IN_OUT

    ANY

    M、D

    I、Q、M、D、 
    T、C

    从S7-200 SMART的数据地址中读取数据;V区数据对应DB1。

    S7-300: 
    SD_1
    S7-400: 
    SD_i
    (1 ≤ i ≤ 4)

    IN_OUT

    ANY

    S7-300:M、D

    S7-400 I、Q、 
    M、D、T、C

    本站发送数据地址

        注意:

    S7-200 SMART PLC 不需要编程。 S7-200 SMART 中的V存储区在S7-300/400 PLC 编程中以DB1数据块的形式体现。

    S7-200 SMART CPU之间的以太网通信

    S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
    — CPU与编程设备之间的数据交换。
    — CPU与HMI之间的数据交换。
    — CPU与其他S7-200 SMART CPU之间的PUT/GET通信。

    S7-200 SMART CPU 以太网连接资源如下:
    — 1个连接用于与STEP7 Micro/Win SMART软件的通信。
    — 8个连接用于CPU与HMI之间的通信。
    — 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接
    — 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET被动连接

    PUT/GET 指令格式

    S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之间的以太网通信(PUT/GET 指令格式见 表 1)。PUT/GET 指令只需要在主动建立连接的 CPU 中调用执行,被动建立连接的 CPU不需要进行通信编程。PUT/GET 指令中TABLE 参数用于定义远程CPU的 IP地址、本地CPU和远程 CPU的数据区域以及通信长度(TABLE 参数定义见 表 2)。

    表 1 PUT和GET 指令:

    LAD/FBD

    STL

    描述

    PUT TABLE

    PUT 指令启动以太网端口上的通信操作,将数据写入远程设备。PUT 指令可向远程设备写入多 212 个字节的数据。

    GET TABLE

    GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取多 222 个字节的数据。

    表 2 PUT和GET 指令的TABLE参数定义:

    字节偏移量

    Bit 7

    Bit 6

    Bit 5

    Bit 4

    Bit 3

    Bit 2

    Bit 1

    Bit 0

    0

    D1

    A2

    E3

    0

    错误代码4

    1

     

    远程 CPU的 IP地址

    2

    3

    4

    5

    预留(必须设置为0)

    6

    预留(必须设置为0)

    7

     

    指向远程 CPU 通信数据区域的地址指针
    (允许数据区域包括:I、Q、M、V)

    8

    9

    10

    11

    通信数据长度5

    12

     

    指向本地 CPU 通信数据区域的地址指针
    (允许数据区域包括:I、Q、M、V)

    13

    14

    15

    1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
    2 A :通信已经激活标志位。
    3 E :通信发生错误,错误原因需要查询 错误代码4。
    4 错误代码 :见表 3 PUT 和 GET 指令TABLE 参数的错误代码。
    5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT 指令可向远程设备写入多 212 个字节的数据,GET 指令可从远程设备读取多 222 个字节的数据。

    表 3 PUT 和 GET 指令TABLE 参数的错误代码:

    错误代码

    描述

    0

    通信无错误

    1

    PUT/GET TABLE参数表中存在非法参数:
    • 本地CPU通信区域不包括 I、Q、M 或 V。
    • 本地CPU不足以提供请求的数据长度。
    • 对于 GET指令数据长度为零或大于 222 字节;对于 PUT指令数据长度大于 212 字节。
    • 远程CPU通信区域不包括 I、Q、M 或 V。
    • 远程CPU 的IP 地址是非法的 (0.0.0.0)。
    • 远程CPU 的IP 地址为广播地址或组播地址。
    • 远程CPU 的IP 地址与本地 CPU的IP 地址相同
    • 远程CPU 的IP 地址位于不同的子网。

    2

    同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个)

    3

    无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。

    4

    从远程 CPU 返回的错误:
    • 请求或发送的数据过多。
    • STOP 模式下不允许对 Q 存储器执行写入操作。
    • 存储区处于写保护状态

    5

    与远程 CPU 之间无可用连接:
    • 远程 CPU 无可用的被动连接资源(S7-200 SMART CPU被动连接资源数为 8 个)。
    • 与远程 CPU 之间的连接丢失(远程 CPU 断电或者物理断开)。

    6-9

    预留

    通信资源数量

    S7-200 SMART CPU 以太网端口含有 8 个PUT/GET 主动连接资源和 8 个PUT/GET 被动连接资源。例如:CPU1 调用 PUT/GET 指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与 CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET 指令),这样的话 CPU1 可以同时与16台 CPU(CPU2 ~ CPU17)建立连接。关于主动连接资源和被动连接资源的详细解释如下:

    1、主动连接资源和被动连接资源
    • 调用 PUT/GET 指令的CPU 占用主动连接资源数;相应的远程 CPU 占用被动连接资源。
    2、8 个PUT/GET 主动连接资源
    • S7-200 SMART CPU 程序中可以包含远多于 8个PUT/GET 指令的调用,但是在同一时刻多只能激活 8 个 PUT/GET 连接资源。
    • 同一时刻对同一个远程 CPU 的多个 PUT/GET 指令的调用,只会占用本地 CPU的一个主动连接资源和远程 CPU的一个被动连接资源。本地 CPU 与远程 CPU之间只会建立一条连接通道,同一时刻触发的多个 PUT/GET 指令将会在这条连接通道上顺序执行。
    • 同一时刻多能对8个不同 IP 地址的远程 CPU 进行 PUT/GET 指令的调用,第9个 远程CPU的PUT/GET 指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
    3、8 个PUT/GET 被动连接资源
    • S7-200 SMART CPU 调用 PUT/GET 指令,执行主动连接的同时也可以被动地被其他远程 CPU 进行通信读写。
    • S7-200 SMART多可以与被8个不同 IP 地址的远程 CPU 进行 建立被动连接。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。

    指令编程举例

    在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2 为被动端,其 IP 地址为192.168.2.101,不需调用 PUT/GET 指令,网络配置见图 1 。通信任务是把 CPU1 的实时时钟信息写入 CPU2 中,把CPU2 中的实时时钟信息读写到 CPU1 中。

    图 1 CPU通信网络配置图

    1、CPU1 主动端编程

    CPU1 主程序中包含读取 CPU 实时时钟、初始化 PUT/ GET 指令的 TABLE 参数表、调用 PUT 指令和 GET 指令等。

    网络1:读取 CPU1 实时时钟,存储到 VB100 ~ VB107 。

    图 2 读取 CPU1 实时时钟

     :READ_RTC 指令用于读取 CPU 实时时钟指令,并将其存储到从字节地址 T 开始的 8 字节时间缓冲区中,数据格式为 BCD 码。

    网络2:定义 PUT 指令 TABLE 参数表,用于将 CPU1 的VB100 ~ VB107 传输到远程 CPU2 的VB0 ~ VB7。

    图 3 定义 PUT 指令 TABLE 参数表

    • a.定义通信状态字节
    • b.定义 CPU2 IP 地址
    • c.定义 CPU2 的通信区域 ,从 VB0 地址开始
    • d.定义通信数据长度
    • e.定义 CPU1 的通信区域,从 VB100 地址开始
    网络3:定义 GET 指令 TABLE 参数表,用于将远程 CPU2 的VB100 ~ VB107 读取到 CPU1 的 VB0 ~ VB7。

    图 4 定义 GET 指令 TABLE 参数表

    • a.定义通信状态字节
    • b.定义 CPU2 IP 地址
    • c.定义 CPU2 的通信区域 ,从 VB100 地址开始
    • d.定义通信数据长度
    • e.定义 CPU1 的通信区域,从 VB0 地址开始
    网络4:调用 PUT 指令和 GET 指令。

    图 5 调用 PUT 指令和 GET 指令

    2、CPU2 被动端编程

    CPU2 的主程序只需包含一条语句用于读取 CPU2 的实时时钟,并存储到 VB100 ~ VB107,如图 6 所示。

    图 6 读取 CPU2 实时时钟

    西门子S7-1200SM1231模块







    http://www.hyzdhxt.com