热门搜索:

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

    山东省西门子PLC代理商

    更新时间:2020-09-19   浏览数:71
    所属行业:机械 电工电气 工控系统及装备
    发货地址:上海市金山区  
    产品规格:山东省西门子PLC代理商
    产品数量:100.00台
    包装说明:全新原装
    单 价:面议

    山东省西门子PLC代理商

    上海西邑电气技术有限公司工业业务领域致力于为客户提供高品质的服务,追求客户的满意是我们始终如一的目标。在中国,工业业务领域拥有一支技术过硬、经验丰富的工程师队伍,为客户提供7x24小时全天候服务。专业的服务人员和遍布全国的服务及备件网络将对客户的服务需求迅速作出响应,将由设备故障引起的损失降低到小的程度。

    blob:http://m.b2b168

    报文通信

    V90 PN可以通过PROFINET通信与PLC连接,通过PROFIDrive报文实现PLC对V90的通信控制。

    可以选择的 PROFIDrive 报文,SINAMICS V90 PN 目前支持的报文如下:

    ? 标准报文 1:速度控制 
    ? 标准报文 2:速度控制 
    ? 标准报文 3:速度/位置控制(1200配置TO时使用) 
    ? 标准报文 102:速度/位置控制 
    ? 标准报文 5/105(DSC):速度/位置控制(1500(T)配置TO时使用) 
    ? 西门子报文 111(EPOS):1200/1500通过FB284控制V90 EPOS定位
    仅在 V90 PN 与 S7-1500/1500T 连接时才能使用 5 号以及 105(DSC) 号报文!

    PROFINET RT/IRT 通信的区别

    PROFINET IO 是一种基于以太网的实时协议,在工业自动化应用中作为网络使用。网络包括以 下设备:
    ● IO 控制器:典型的是 PLC,用于控制整个系统
    ● IO 设备:一个分散式 IO 设备(例如,编码器,驱动器),通过 IO 控制器控制
    PROFINET 提供两种实时通信,PROFINET IO RT(实时)和 PROFINET IO IRT(等时实时)。
    在 PROFINET IO RT 通道中,实时数据通过优先以太网帧进行传输。没有特殊的硬件要求。基于该优先级别,其循环周期可达到 4 ms。S7-1200连接V90 PN采用RT通信。
    IRT 通道适用于传输具有更加精确时间要求的数据,其循环周期可达 2 ms,S7-1500连接V90 PN采用IRT通信,必须采用带DSC功能的通信报文5/105。

    常问问题

     V90在EPOS工作模式下好使用哪个通信报文?

    西门子报文111。

     1200PLC连接V90PN,如果组态工艺对象应该用哪个报文?

    位置轴控制采用3号报文

     1500PLC连接V90PN,如果组态工艺对象应该用哪个报文?

    采用105号报文,带DSC功能。

     在博途中组态V90 PN时为什么找不到111报文?

    需要使用 V90的GSD文件组态,使用HSP组态找不到111报文。

     V90 PN 设置报文时为什么找不到111报文?

    需要使用V-Assistant软件把 V90 驱动器的控制模式设置为"基本位置控制(EPOS)",之后才可以设置111报文。

    S7-300/400与S7-200SMART之间的以太网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所示。
     
    图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所示。 
    山东省西门子PLC代理商
    图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数据块的形式体现。

    问题:如何计算当前程序所需的Local Data大小并合理设置S7 400 CPU属性中的Memory选项卡中的Local Data,S7 400 CPU中的Local data设置不当会导致什么问题?
    回答:Local data顾名思义为本地数据,在西门子控制器中有一部分内存空间被设置为L区间,它被用于控制器在运行程序时存储临时数据。由于编写FB/FC程序的需要和OB中调用功能块结构的不同,不同的OB由于调用不同的FB/FC,因此所需的Local data的大小各不相同(被调用的FB/FC将占用当前调用他的OB块的Local Data资源)。在控制器硬件组态中的CPU属性设置中,Memory选项卡用于设置Local data的分配。如果相应OB块实际运行所需的Local data大于硬件组态中所设置的Local Data大小,那么相应的程序将无法运行,CPU将报告INTF错误,甚至更为严重的情况下CPU可能会停止运行。但如果盲目将Local Data的分配设置过大,将会浪费一部分宝贵的CPU内存空间。
    S7 300CPU中的Local data不可修改,每个优先级固定设置为256 bytes,S7 400的Local data则可以人为修改。由此可以看出正确设置S7400 CPU的Local Data的大小非常重要。在控制器硬件组态中CPU属性? Memory选项卡的Local Data区域用于设置基于优先级的Local Data(如下图所示):


    Pic1: Local Data的分配

    在PCS7组态的项目中,在编译CFC程序后,系统将会自动计算各OB块所需的Local Data大小,可以通过交叉索引(Chart reference data ? Local data,如下图所示)查询到。


    Pic2: Chart reference data ? Local data

    而普通的由用户采用Step7编程方式编写的程序,程序功能块及OB块各自的调用结构由用户自行控制,需要在编写完整个程序之后自行计算。
    在手动计算Local Data时,需要获取如下信息:
    1. 各OB块、FB块、FC块各自独立运行时所需的Local Data大小
    可以通过如下方式查询到:在Block文件夹中选择相应功能块,右键 属性? General - Part2中即可查看到,如下图所示:


    Pic3: 功能块所需的Local Data

    注:嵌套调用时,上一级功能块将不会计算其嵌套调用的FB/FC所需的Local data大小;在上图中将不会累加嵌套功能块所需的Local data大小;


    2. 整个程序的调用结构(Call structure)
    由于功能块不会计算其嵌套调用的功能块所需到Local data大小,因此为了后计算整个OB所需到Local Data,必须了解整个程序的调用结构。打开任何一个功能块,点击左侧的Call Structure即可查询到,如下图所示;


    Pic4: 程序调用结构


    3. 当前程序下所使用的所有OB的优先级
    由于CPU属性设置中的Local Data分配基于优先级进行设置,因此需要查看所有当前程序使用的OB块的中断优先级,打开硬件组态中CPU属性查看,如下图所示;


    Pic5: 查看OB的优先级

    获得所有上述信息后,即可计算当前程序所需的Local data大小。假设当前项目下使用的功能块及OB块上述相关信息如下表所示:

    OB/FB/FC Priority 优先级 所需Local Data(Bytes)
    FB1 X 100
    FC1 X 400
    OB1 1 26
    OB35 12 26
    OB121 X 20
    OB122 X 20

    OB的调用关系如上图Pic4所示。根据调用结构计算,单独运行各OB块时所需的Local data如下:
    OB1: OB1 + Max(Sum(FB1,FC1), FC1) =26+Max(Sum(100,400), 400)=526
    OB35: OB35 + Sum(FB1,FC1) =26+Sum(100,400)=526
    OB121: OB121=20
    OB122: OB122=20
    终CPU属性中Local data的设置如下:
    优先级 1 所需Local Data大小至少为526 + 20 + 20 = 566 bytes;
    优先级12所需的Local Data大小至少为526 + 20 + 20 = 566 bytes;
    注:为什么上述优先级1和12中需要加入 两个20呢,因为程序运行的任何位置都有可能会执行OB121、OB122,所以需要加上OB121和OB122所需的本地数据。PCS7中(Pic2所示)进行各优先级所需Local data大小计算时已经自动加入了这部分的大小。
    具体的计算法则可以归纳为一下几点:

    1. 从内往外,从低往高;
    即:基于程序的调用结构,从低层、内层逐步往上、往外计算;
    2. 同级取大,内外求和;
    即:程序调用结构中,同层FB/FC中所需的Local data取各所需Local data中的大值;某一优先级所需的Local Data大小取所有相同优先级OB所需的Local Data的大值;上下调用层级各自所需Local Data需求和;
    3. 结果叠加OB121(编程错误)、OB122(I/O读取错误);
    即:终计算出的某优先级所需的Local data大小需要叠加上OB121、OB122所需的Local data;

    山东省西门子PLC代理商


    http://www.hyzdhxt.com