企业信息

    湖南环辰泰瑞电气设备有限公司

  • 7
  • 公司认证: 营业执照已认证
  • 企业性质:
    成立时间:
  • 公司地址: 湖南省 长沙 长沙县 星沙街道 湖南省长沙县安沙镇谭访新村腰塘组617号
  • 姓名: 彭东
  • 认证: 手机已认证 身份证未认证 微信未绑定

    楚雄西门子S7300模块代理商 西门子一级代理

  • 所属行业:仪器仪表 电子元器件 连接器/接插件
  • 发布日期:2018-09-12
  • 阅读量:140
  • 价格:面议
  • 产品规格:不限
  • 产品数量:9999.00 台
  • 包装说明:不限
  • 发货地址:湖南长沙长沙县星沙街道  
  • 关键词:楚雄西门子S7300模块代理商

    楚雄西门子S7300模块代理商 西门子一级代理详细内容

    说明:

    下表显示了一个如何组态 S5 和基于 Windows 的操作员面板之间的时间同步的实例。该实例使用 S5-115U 944B。在该条目结束处提供一个供下载的实例项目。

     

    编号    时间同步

    1    S5:参数化 DB1 内部功能

    CPU 具有可按要求设置的功能。在这种情况下,使用内部时钟。有关 CPU 是否具有集成时钟的信息,请参见相应的手册。通常,所有“B”型 CPU 均支持该功能。

    2    S5:参数化 DB1

    PLC 已经有一个具有预设值的 DB1。如果完全复位 PLC,然后安装 DB1,则显示下列结构。

     


    图 01

    该预设置 DB1 包含分别用于功能“TFB”和“SDP”的一个参数块。

    参数块轮询功能的参数。它始终从块标识符开始,然后跟随一个冒号。

    冒号后必须有至少一个以上空格。分号(;)标记参数块的末尾。参数位于块标识符和分号(;)之间

    下面是可用于参数化块的参数列表。然而,不是所有的功能都是必需的。

    注意事项:

    例如,可以在语句后添加附加信息如“_clock data”,就和参数“CLK_clock data”中一样。

     


    图 02

    下图更为详细地描述了所附带实例的参数设置。可以相应地更改所使用的 DB/MB。

     


    图 03

    所使用的参数和 DB/MB :

    块标识符:CLP

    时钟数据区:CLK DB5 DW0

    时钟的状态字:STW MB110

    在 STOP 中更新:STP J

    在 RUN/STOP 中保存时钟时间:SAV J

    保存时钟时间:SET 3 和“设置相应的日期和时间”

    结束标识符:END

     

    这样就完成了 DB1 的参数化。将 DB1 传送到控制器中。如果是一个无效条目,则 PLC 保持位于 STOP 状态。

    注意事项:

    必须始终从正在使用的 PLC 类型下载 DB1。例如,无法在 S5-944B 中使用来自 S5-95U 的 DB1。

    可以从条目号 1085937 中下载的手册“S5-115U Programmable Controller”中,获得关于 DB1 结构及其参数的详细信息。

    请牢记传送时钟数据区(DB5)的 DB。

    3    S5:时钟数据区的结构(DB5)

    对于时钟数据区,以“KH”格式创建一个长度为 21 个字的 DB。

    下图显示了时钟数据区的完整结构。

     


    图 04

    在该实例中下列参数相关:


    图 05

    字 0 - 3 用于读出 CPU 系统时间。

    (=> 在实例程序的 FB2 中)。

    字 4 -7 用于设置 CPU 系统时间。

    (=> 在实例程序的 FB4 中)。

    4    S5:判断系统时间

    读出 CPU 系统时间:

    为确定 CPU 系统时间,从时钟数据区 (DB5) (数据字 0-3) 读取数据。通过 S5 程序,将该数据分配给面板的区域指针“Date/Time PLC”。


    在* B 章的基于 Windows 系统的通讯手册中给出了区域指针的详细描述。

    可以在条目号 1405528 中下载本手册。

    区域指针“Date/Time PLC”的结构:


    图 06

    写入/编辑 CPU 系统时间:

    如果希望更改 CPU 的系统时间,则将相应的数据 (小时、分钟等) 分配给时钟数据区 (DB5) (数据字 4-7)。

    为了执行功能,必须在状态字 (MB110) 中置位*二个位。通过该方式,在 CPU 中接受“已修改的”系统。

    可通过状态字 (MB110) 执行错误评估。

    可以在条目号 1085937 下载的手册“S5-115U Programmable Controller”中找到关于“状态字”的详细信息。

    5    ProTool 组态

    显示系统时间:

    为了在面板上接受 CPU 的系统时间,在 ProTool 中创建一个区域指针“Date/Time PLC”。

    该区域指针用于通过 PLC 更新面板上的系统时间。按要点 4 所述,通过 S5 程序分配数据。

    自动更新面板上的系统时间,更新取决于为区域指针“Date/Time PLC”组态的采集周期。

    若要在面板上显示系统时间,在画面中插入一个“Date/Time”域。

    注意事项:

    区域指针“Date/Time PLC”的时间不能选择得太短 (例如,1 秒),因为这将增加太多的通讯负载,影响面板性能。

    更改/处理系统时间:

    若要更改 CPU 的系统时间,为每个参数创建一个独立输入域 (小时、分钟、秒等)。

    这些数值通过 S5 程序评估,并被分配给“时钟数据区”。

    通过面板上的一个键激活系统时间更改,这将置位状态字中的位 2 (MB110)。

    如果操作员出错,则可通过状态字显示此错误 (MB110,位 0)。

    注意事项:

    如果操作员按下了用于更新系统时间的键,则面板更新显示所需的时间是区域指针“Date/Time PLC”采集周期所组态时间的两倍。


    实例:

    组态 10 秒钟的采集周期。按下用于更新系统时间的键后,大约需要 20 秒钟,才能在面板上显示新时间。

    图:变量声明:


    图 07

    6    实例程序中的 ProTool 功能注意事项

    总览:


    图 08

    通过输入域“day”/“month”/“year”等,在面板上输入期望的日期和时间。通过“Date/Time  Panel --> PLC”按钮,将数据集传送到控制器。

    如果识别出错,例如在“month”域中输入了“13”,而不是“12”,则中止编辑,发送出错消息“wrong input”。

    一旦检查并更正了条目,可以再次按下“Date/Time  Panel --> PLC”按钮重新执行该功能。

    7    实例程序的 S5 程序注意事项

    DB1:

    首先从 PLC 下载 DB1,然后对它进行参数化。

    => 定义了时钟数据区 (DB5)

    => 定义了状态字 (MB110)。

    参见要点 2。

    DB5:

    包含了长度为 21 个字的“时钟数据区”。通过 DB5 完成 CPU 系统时间。

    DB10:

    在该 DB 中单独存储数据,如日/月/年等。

    FB2:

    通过功能块 FB2 读出 CPU 系统时间。

    通过时钟数据区 DB5 首先将系统时间复制到“scratch flag”。然后将数据分配给“Date/Time PLC”的区域指针。

    FB4:

    通过功能块 FB4 评估来自面板的数值。

    首先将单个数值复制到“scratch flag”。

    然后将数据分配给时钟数据区 DB5。

    在面板上通过“Date/Time Panel --> PLC”按钮的边沿评估执行“Time synchronization”。

    将数据传送到 DB5 的时钟数据区,从而在 CPU 中接受来自面板的数值。

    项目文件:

    使用 ProTool V6.2 SP3 创建 MP370 Touch 面板。

    使用 STEP 5 V7.23 创建 S5 程序。

    说明

    如果用 S7 模拟量模块替换了 S5 模拟量模块,除了 R64 块外,不能再使用其它标准块。这是由于它们只能直接连接到模拟量模块的输入和输出上。 不管用何种方法,由于模块的分辨率有所不同,标准块可能存在提供错误结果的风险。

    不过,如果在 S5 程序中没有使用任何标准接口,可以把模拟量值转换增加到现有的程序中。

    S5 模块缺省分辨率是 2048 ,但 S7 模块通常的分辨率为 27648 (S7 格式)。

    在转换 S5 程序时必须考虑到分辨率的变化,以便不会歪曲评估结果。

     

    下图清晰的描述了其中的关系。


    图. 1: 在块之间进行数据转换的示意图

    变量定义:

    a = S5 模拟量输入模块的输出值

    b = S5 CPU的输出值

    c = 模拟量输出模块的输出值

    d = S7 模拟量输入模块的输出值

    e = 转换后输出到 S7 模拟输出模块的值

    X = S5 模拟模块的分辨率

    Y = S7 模拟模块的分辨率

    如果使用分辨率为 2048 的 S5 标准接口,则使用下面的转换因子:


     公式 1:转换来自 S7 输入模块的输出值

    对于模拟量输出,同样必须在 S5 控制程序中执行转换。缺省情况下,S5模拟量输出 模块分辨率为 1024 。因此,在本文中转换公式为:


    公式 2:转换老 S5 程序的输出值

    有些 S5 接口不支持 2048/1024 个单位,例如使用 R64 块时。该块使用 16384 的分辨率。通常,下面两个公式适用于模拟数值的转换。


    公式 3:转换 S7输入模块的 输出值时的通用公式


    公式 4:转换老 S5 程序所用的通用公式 

    注意

    使用 4-20 mA 接口时,不进行格式调整,因为 S7 模块并不会导致 512 个单位转换。 

    下面的例子清晰的演示了这种转换。

    举例

    用一个 ET200S 替代 S5 模拟量输入模块 AE460。而且用一个 S7 模块替代一个 S5 模拟量输出模块。在 S5 程序中通过 R64 块评估值。为了能够继续 使用现有程序,在 S5 程序处理模拟量之前,必须对新的输入的值进行转换。

    此时不能将模拟数值直接与 R64 块的输入相连。模拟量模块组的数值必须经过一个因子转换(不能通过参数 COM REG 设置该因子),并且必须将其 预先设置为 R64 规定的格式。同样通过 R64 块计算好的输出值,必须通过一个因子对 R64 模拟格式的数值进行转换再将其输出到 S7 模拟量输出模块。

    正如前面所述,R64 模块采用 16384 的分辨率(模拟格式)。因此,必须重新计算转换因子。公式 3 和公式 4组合起来应用。


    公式 5:使用 R64 块时转换 S7 模块的输出值


    公式 6:转换 S5 控制程序的输出值

    描述:

    下表为 S5 后备电池说明,表格根据 PLC 种类以及相应的电源单元分类排列。 

    PLC/CPU    

    PLC 订货号    

    电池订货号    

    后备电池规格

    010W    6ES5 900-7AD21    6ES5 980-0AD41     

    90U    

    6ES5 090-8MA01    

    6ES7 971-1AA00-0AA0    

    锂电池,规格 1/2 AA 带连接线, 3.6V/ 0.85Ah

    95U    

    6ES5 095-8MA03    

    6ES5 980-0MA11    

    锂电池,规格 1/2 AA,3.6V/ 0.85Ah

    6ES5 095-8MB02

    6ES5 095-8MC01

    6ES5 095-8MD01

    6ES5 095-8ME01

    95F SI    

    6ES5 095-8FB01

    100U    

    6ES5 100-8MA.1    

    6ES5 980 0MA11    

    锂电池,规格 1/2 AA, 3.6V/ 0.85Ah

    6ES5 102-8MA.1

    6ES5 103-8MA.1

    101U    

    6ES5 101-8U..3    

    6ES5 980-0AE11    

    锂电池,规格 AA, 3.6V/1.75Ah

    110A    6ES5 900-7AD11    6ES5 980-0AC11    镍镉电池子模块

    110F    6ES5 900-7FC11    6ES5 980-0AC11    镍镉电池子模块

    110S    6ES5 110-3SB21    6EW1 000-7AA    锂电池,规格 C, 3.6V/ 5.2Ah

    6ES5 110-3SB31

    115U/H/F    

    6ES5 951-7LB12    

    6EW1 000-7AA    

    锂电池,规格 C, 3.6V/ 5.2Ah

    6ES5 951-7LB13

    6ES5 951-7LB14

    6ES5 951-7LB21

    6ES5 951-7LD11

    6ES5 951-7LD12

    6ES5 951-7LD21    

    6ES5 980-0AE11    

    可插两节锂电池,规格 AA, 3.6V/ 1.75Ah

    6ES5 951-7NB12    

    6EW1 000-7AA    

    锂电池,规格 C,3.6V/ 5.2Ah

    6ES5 951-7NB13

    6ES5 951-7NB21

    6ES5 951-7ND11

    6ES5 951-7ND12

    6ES5 951-7ND21

    6ES5 951-7ND31

    6ES5 951-7ND32

    6ES5 951-7ND41    

    6ES5 980-0AE11    

    可插两节锂电池,规格 AA, 3.6V/ 1.75Ah

    6ES5 951-7ND51

    130A    

    6EV2 031-4AC to 4EC 1)    

    6EW1 000-4AB    

    插入式模块和一个带有3个镍镉电池的电池块,3.6V/ 1.2Ah

    6EV2 031-4FC 1)    

    6EW1 000-6AB    

    锂电池 (插入式后备电池), 3.6V/ 8Ah

    6EV2 032-3AC bis 3EC 1)    

    6EW1 000-4AB    

    插入式模块和一个带有3个镍镉电池的电池块, 电池 3.6V/ 1.2Ah

    6EV2 032-3FC 1)    

    6EW1 000-6AB    

    锂电池 (插入式后备电池),3.6V/ 8Ah

    6ES5 950-3AA11    

    6ES5 980-0AA11    

    镍镉电池,规格(KR23/34),类型 R , 3.6V/ 1Ah

    6ES5 950-3AA12    

    6ES5 980-0AA21

     

    不再供货2)    

    锂电池, 3.6V/ 5.2Ah

    6ES5 950-3AA32

    6ES5 950-3AA51

    130K    6ES5 950-1AA11

    to 12    6ES5 980-0AA11    镍镉电池,规格(KR23/34),类型 R ,3.6V/ 1Ah

    6ES5 950-1AA61    

    6ES5 980-0AA21

     

    不再供货2)    

    锂电池,3.6V/ 5.2Ah

    6EV3 053-0AC to 0CC    

    6EW1 000-7AA    

    锂电池,规格 C,  3.6V/ 5.2Ah

    6ES5 950-3AA51    

    6EW1 001-0AA

     

    不再供货2)    

    锂电池,规格  D,3.6V/ 10Ah

    130W    

    6EV3 053-0AC to 0CC    

    6EW1 000-7AA    

    锂电池,规格 C, 3.6V/ 5.2Ah

    6EV3 053-0DC

     

     

         

    6EW1 001-0AA

     

     

     

     

     

    不再供货2)    

    锂电池,规格 D, 3.6V/ 10Ah

    130WB    

    6EV 053-0DC

     

     

         

    6EW1 001-0AA

     

     

     

     

     

    不再供货2)    

    锂电池,规格  D, 3.6V/ 10Ah

    150A    

    6EW1 110-5AA to 5AC 1)    

    6EW1 000-4AB    

    插入式模块和一个带有3个镍镉电池的电池块, 电池 3.6V/ 1.2Ah

    6EW1 110-5AD 1)    

    6EW1 000-6AB    

    锂电池 (插入式后备电池), 3.6V/ 8Ah

    6EW1 160-5AA to 5AB 1)    

    6EW1 000-4AA    

    镍镉电池,3.6V/ 1Ah

    6EW1 160-5AC to 5AE 1)    

    6EW1 000-4AB    

    插入式模块和一个带有3个镍镉电池的电池块,电池 3.6V/ 1.2Ah

    6EW1 160-5AF 1)    

    6EW1 000-6AB    

    锂电池 (插入式后备电池), 3.6V/ 8Ah

    150K/S    

    6EV3 053-0AC to 0CC    

    6EW1 000-7AA    

    锂电池,规格  C 3.6V/ 5.2Ah

    6EV3 053-0DC    

    6EW1 001-0AA

    不再供货2)    

    锂电池,规格  D, 3.6V/ 10Ah

    135U

    150U/H-

    155U/H    

    6ES5 955-3LC11 to 14    

    6EW1 000-7AA

     

    6ES5 980-0NC11    

    锂电池,规格 C,3.6V/ 5.2Ah

    风扇电池,用于插入式电源单元 6ES5 955-3..4

    6ES5 955-3LC21

    6ES5 955-3LC4.

    6ES5 955-3LF11 to 12

    6ES5 955-3LF21

    6ES5955-3LF4.

    6ES5 955-3NA11 to 12

    6ES5 955-3NC11 to 12

    6ES5 955-3NC21

    6ES5 955-3NC4.

    6ES5 955-3NF11

    6ES5 955-3NF21

    6ES5 955-3NF4.

    155H 分段式机架     6ES5 955-7NC11 to 12    6ES7971-0BA00    可插两节锂电池,规格AA,  3.6V/ 2.3Ah

    存储器模块    6ES5 340    6ES5 980-0CA11    后备锂电池

    3V (钮扣电池), 5Ah

    存储器模块    6ES5 377-0BA31

    to 41    6ES5 980-0DA11    

    后备锂电池

    3V (钮扣电池)

    硬件设备:SITRANS MASS6000 、 Profibus PA 模块、CP5512 通讯卡、S7400CPU 、DP/PA 耦合器等等

    软件:STEP 7 V5.3

    硬件组态图如下: 控制命令地址为512


    OB1 程序图如下:



    在OB1 块中编程如下:

    Network 1 // 读值

    //质量流量

    CALL "DPRD_DAT"

    LADDR :=W#16#200

    RET_VAL:=MW100

    RECORD :=P#M 110.0 BYTE 5

    //累积流量1(TOTALIZER1)

    CALL "DPRD_DAT"

    LADDR :=W#16#205

    RET_VAL:=MW102

    RECORD :=P#M 115.0 BYTE 5

    //累积2(TOTALIZER2), 具体累积含义,参照二次仪表中的菜单设置。

    CALL "DPRD_DAT"

    LADDR :=W#16#20A

    RET_VAL:=MW104

    RECORD :=P#M 120.0 BYTE 5

    Network 2 // 计数器1 运行1 秒,当计数器2 运行结束,计数器1 重新置位

    AN M 1.0

    L S5T#1S

    SE T 1

    Network 3 // 当计数器1 运行结束,置控制累积流量字节为1(置零)

    A T 1

    JNB _001

    L B#16#1

    T PQB 512

    SET

    SAVE

    CLR

    _001: A BR

    = M 1.1

    Network 4 //计数器2 运行20 秒,当计数器1 运行结束,计数器2 置位

    AN M 1.1

    L S5T#20S

    SE T 2

    Network 5 //当计数器2 运行结束,置控制累积流量字节为0(累积)

    A T 2

    JNB _002

    L B#16#0

    T PQB 512

    SET

    SAVE

    CLR

    _002:A BR

    = M 1.0

    通过变量表观察如下图变化,累积量1(MD115 )在一定时间后自动置零:


    以上实例中,质量流量为0.4g/s 左右

    累积流量控制字节各位的含义如下:

    位    7    6    5    4    3    2    1    0

    功能    ZA                    T2H     T1H     T2R     T1R 

    T1R= 累积1 置零

    T2R= 累积2 置零

    T1H= 累积1 保持/运行

    T2H= 累积2 保持/运行

    ZA= 零点校正

    为保证位的改变,请保持每个位的激活时间在100mS 以上。当位从0 到1,命令有效。但是对于T1H 和T2H 来说,0 表示运行,1 表示保持。

    备注:对于电磁流量计MAG6000 ,累积流量控制命令在SLOT4 槽中,对于质量流量计MASS6000, 累积流量控制命令在SLOT10 槽中。控制命令长度为1 个字节。

    其他,如果需要将累积流量1 保持住,可以设定如下图所示:


    其他命令控制依次类推即可。

    程序软件包如附件:

    在静止流量的情况下,也可以通过PDM V6.0 观察各参数如下图:


    关键词

    MASS6000质量流量计,PROFIBUS PA模块,置零

    CPU自带的以太网接口可以使用OPEN IE的方式实现如下协议,分别介绍如下:

    ? TCP

    ? UDP

    ? ISO-on-TCP

    注意:以下内容任何用户可以免费使用,复制和传递他人,程序的作者及拥有者不负责软件的功能性和兼容性,使用者须自己承担责任,由于内容免费,所以不保证错误的更正和热线支持!


    1. TCP通信

    1.1通信程序块的准备

    如下的通信块可以用来建立TCP通信,您需要把这些程序块拷贝到您的项目中:

    1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数

    2) FB66 "TDISCON" 用于断开连接

    3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备

    4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据

    5) UDT65 "TCON_PAR"存放用户通信参数

    6) FC97 "SET_TCP_ENDPOINTx" 用于修改UDT65类型变量内通信对象参数

    FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:



    图 01: FB63,64,65,66

    FC97与UDT65需要从如下项目中打开获得:

     ( 42 KB )



    图 02: FC97与UDT65

    首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。

    1.2通信程序编写

    1.2.1 生成数据块

    在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65



    图 03: 生成UDT65类型变量

    1.2.2在OB1中编程

    首先调用FC97 "SET_TCP_ENDPOINTx"



    图 04: 调用FC97

    FC97参数说明如下:

    ? ID: 连接ID

    ? DEV_ID

    DEV_ID = B#16#1 用于本PLC型号(注意不是通信对方)为 IM151-8 PN/DP CPU

    DEV_ID = B#16#2 用于本PLC型号(注意不是通信对方)为 CPU31x-2PN/DP或IM154-8 CPU

    DEV_ID = B#16#3 用于本PLC型号(注意不是通信对方)为 CPU319-3PN/DP

    DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为 CPU41x-3PN/DP

    ? ACTIVE: 主动或是被动建立连接,通信双方必须一个主动,一个被动

    ? LOC_PORT: CPU本地的TCP端口

    ? REM_PORT: 通信伙伴的TCP远程端口

    ? IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址

    ? V23:本机是否是CPU31x-2PN/DP FIRMWARE 版本为2.3或以下版本

    ? CON_DB:用UDT65生成的变量



    图05: 调用FB65 "T_CON"

    调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。

    1.2.3 调用发送和接收程序



    图06: 调用 FB63,64发送接收数据

    FB63 "TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。

    FB64 "TRECV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。

    1.2.4断开连接

    调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。



    图 07: 调用FB66 "TDISCON"


    2. UDP通信

    2.1通信程序块的准备

    如下的通信块可以用来建立UDP通信,您需要把这些程序块拷贝到您的项目中:

    1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数

    2) FB66 "TDISCON" 用于断开连接

    3) FB67 "TUSEND"用于发送数据到S7站点、S5站点、PC站或者第三方设备

    4) FB68 "TURCV"用于从S7站点、S5站点、PC站或者第三方设备接收数据

    5) UDT65 "TCON_PAR"存放用户通信参数

    6) UDT66 "TADDR_PAR"存放用户通信参数

    7) FC95"SET_UDP_ENDPOINT"用于建立本地UDP通信参数

    8) FC96"SET_UDP_REMOTE"用于建立远程UDP通信参数

    FB65,66,67,68这四个功能块可以在Standard Library -> Communication Blocks里得到:



    图 08: FB65,66,67,68

    FC95,96与UDT65,66需要从如下项目中打开获得:

     ( 41 KB )



    图 09: FC95,96与UDT65,66

    首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。

    2.2通信程序编写

    2.2.1 生成数据块

    然后在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65



    图 10: 生成UDT65类型变量

    然后在程序中生成另一个DB块,块号不限(本例为db102),在块中建立变量DB_VAR,类型为UDT66



    图 11: 生成UDT66类型变量

    2.2.2在OB1中编程

    首先调用FC95,96


    图 12:调用FC95,96

    定义的本地UDP端点连接参数:

    通过FC95 "SET_UDP_ENDPOINT"设置,下列参数需要考虑:

    ? ID: 连接ID

    ? DEV_ID

    DEV_ID = B#16#1 用于本PLC型号(注意不是通信对方)为 IM151-8 PN/DP CPU

    DEV_ID = B#16#2 用于本PLC型号(注意不是通信对方)为 CPU31x-2PN/DP或IM154-8 CPU

    DEV_ID = B#16#3 用于本PLC型号(注意不是通信对方)为CPU319-3PN/DP

    DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为CPU41x-3PN/DP

    ? LOC_PORT: CPU本地的TCP端口

    通过FC96 "SET_UDP_REMOTE"定义远端的UDP端点. 下列参数需要考虑:

    REM_PORT: 通信方端口号

    IP_ADDR1 ... IP_ADDR4: 通信方IP地址



    图 13: 调用FB65 "T_CON"

    调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。

    2.2.3 调用发送和接收程序



    图 14: 调用FB67,68接收和发送数据

    FB67 "TUSEND"发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。"ADDR"填写UDT66生成的变量。

    FB68 "TURCV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。"ADDR"填写UDT66生成的变量。

    2.2.4断开连接

    调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。

    西门子6ES5947-3UA21


    图 15: 调用FB66 "TDISCON"


    3. ISO ON TCP通信

    3.1通信程序块的准备

    如下的通信块可以用来建立ISO ON TCP通信,您需要把这些程序块拷贝到您的项目中:

    1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数

    2) FB66 "TDISCON" 用于断开连接

    3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备

    4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据

    5) UDT65 "TCON_PAR"存放用户通信参数

    6) FB420 "SET_ISO_ENDPOINT" 用于修改UDT65内通信对象参数

    7) FC21 被FB420调用

    FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:



    图 16: FB63,64,65,66

    FB420 FC21与UDT65需要从如下项目中打开获得:

     ( 50 KB )



    图 17: FB420 FC21与UDT65

    首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。

    3.2通信程序编写

    3.2.1 生成数据块

    在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65



    图 18: 生成UDT65类型变量

    <


    http://f18374336999.cn.b2b168.com
    欢迎来到湖南环辰泰瑞电气设备有限公司网站, 具体地址是湖南省长沙长沙县湖南省长沙县安沙镇谭访新村腰塘组617号 ,联系人是彭东。 主要经营湖南环辰泰瑞电气设备有限公司 在经营活动中精益求精,具备如下业务优势: SIEMENS 可编程控制器   1、 SIMATIC S7 系列PLC、S7200、s71200、S7300、S7400、ET200   2、 逻辑控制模块 LOGO!230RC、230RCO、230RCL。 单位注册资金未知。 我们公司主要供应西门子卡件,西门子S7-300卡件等产品,我们的产品货真价实,性能可靠,欢迎电话咨询!