西门子plc与变频器通讯工控网汇总_第1页
西门子plc与变频器通讯工控网汇总_第2页
西门子plc与变频器通讯工控网汇总_第3页
西门子plc与变频器通讯工控网汇总_第4页
西门子plc与变频器通讯工控网汇总_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西门子的USS 通讯,无需使用特殊硬件,PLC 与变频器都有继承的串口,简单,价廉。如果要使用总线的话,就需要额外使用通讯卡或适配器。PLC 与驱动装置连接,主要实现的任务是: 驱动装置的启动、停止等运行状态驱动装置的转速等参数获取驱动装置的状态和参数S7-200 和西门子传动装置主要可以通过以下几种方式连接在一起工作:S7-200 通过数字量(DI/DO)信号驱动装置的运行状态和速度S7-200 通过数字量信号驱动装置的运行状态;通过模拟量(AI/AO)信号转速等参数S7-200 通过串行通信驱动装置的运行和各种参数*由于题目的需要,那就使用“S7-200 通过串行通信驱动装置的运行 ”,也

2、就是启停。S7-200 CPU 将在 USS 通信中作为主站。而变频器则为 USS 从站。当 S7-200 的编程为 V4.0 SP5 以上的话,就USS 协议指令库,以下通过西门子提供的 USS 指令库与 MM 440 之间的串行通信。1、关于指令库见下图,就是安装了 USS 协议指令库的指令树。西门子的标准 USS 协议库以浅蓝色图标表示。如果未找到浅蓝色图标的指令库,说明系统中没有安装西门子标准指令库。必须先安装标准指令库。2、USS 初始化指令西门子的 S7-200 USS 标准指令库14 个子程序和 3 个中断服务程序。但是只有 8 个指令可供用户使用。一些子程序和所有中断服务程序都

3、在调用相关的指令后自动起作用。每个 USS 库应用都要先进行 USS 通信的初始化。使用 USS_INITUSS 通信功能。指令初始化打开 USS 指令库分支,像调用子程序一样调用USS_INIT 指令。上图中:a. EN: 初始化程序 USS_INIT 只需在执行一个周期就能改变通信口的功能,以及进行其他一些必要的初始设置,因此可以使用 SM0.1指令;或者沿触发的接点调用 USS_INITb. Mode: 模式选择,执行 USS_INIT 时 ,Mode 的状态决定 是否在 Port 0 上使用 USS通信功能;= 1 设置 Port 0 为 USS 通信协议并进行相关初始化0 恢复 Po

4、rt 0 为 PPI 从站模式3、分配库区地址指令库或者向导都要求分配库区地址,这也是使用西门子 200 容易忽略的步骤。在上表中的这个 32 位的双字中,每一位的位号表示 USS 从站的地址号;要在网络中激活某地址号的驱动装置,则需要把相应位号的位置设为二进制“1",不需要激活 USS 从站, 相应的位设置为”0"。最后对此双字取无符号整数就可以得出 Active 参数的取值。将使用站地址为 3 的 MM 440 变频器,则须在位号为 03 的位单元格中填入二进制“1"。其他不需要激活的地址 对应的位设置为”0"。取整数,计算出的 Active 值为

5、00000008 h, 即 16#00000008,也等于十进制数 8(如调用 USS_INIT 指令中的 d)我都是使用 16 进制数,这样可以每 4 位一组进行加权计算出 16 进制数,并组一个整数。 如果一时难以计算出有多个 USS 从站配置情况下的 Active 值,可以使用Windows 自带的计算器。将其设置为科学计算器模式,可以方便地转换数制。c. Baud: USS 通信波特率。此参数要和变频器的参数设置一致;= 24002400 bit/s48004800 bit/s96009600 bit/s19200 19200 bit/s38400 38400 bit/s57600 5

6、7600 bit/s115200 115200 bit/sd. Active: 此参数决定网络上的哪些 USS 从站在通信中有效。详见下面的说明;e. Done: 初始化完成标志f. Error: 初始化错误代码Active 参数USS_INIT 子程序的 Active 参数用来表示网络上哪些 USS 从站要被主站,即在主站的轮询表中激活。网络上作为 USS 从站的驱动装置每个都有不同的 USS 协议地址,主站要 的驱动装置,其地址必须在主站的轮询表中激活。USS_INIT 指令只用一个 32 位长的双字来 USS 从站有效地址表,Active 的无符号整数值就是它在指令输入端的取值。USS

7、指令库需要大概 400 个字节的 V区用于支持其工作。调用USS_INIT 指令后区地址,但这一区分配原则,分就可以为 USS 指令库分配库区。也可以在编程的稍后阶段分配步是必不可少的,否则程序无法通过编译。注意: S7-200 中的数据配给库指令的数据区绝对不能与其他程序使用的数据区有任何重叠。否则会造成出错。在指令树的 Project(项目)中,以鼠标右键单击 Program Block(程序块),在弹出的快捷菜单中选择 Library Memory。如下图所示:4、USS 驱动装置功能块USS_CTRL 指令用于对单个驱动装置进行运行。这个功能块利用了 USS 协议中的PZD 数据传输,

8、和反馈信号更新较快。网络上的每一个激活的 USS 驱动装置从站,都要在调用一个独占的 USS_CTRLUSS 初始化指令运行时定义为“激指令,而且只能调用一次。需要活”。的驱动装置必须在在USS 通信指令库分支中选择USS_CTRL指令上图中:a. EN: 使用 SM0.0 使能 USS_CTRL 指令b. RUN: 驱动装置的启动/停止= 0 停止1 运行此停车是按照驱动装置中设置的斜坡指电机停止c. OFF2: 停车信号 2。此信号为“1"时,驱动装置将主回路输出,电停车d. OFF3: 停车信号 3。此信号为”1"时,驱动装置将快速停车e. F_ACK: 故障确认。当

9、驱动装置发生故障后,将通过状态字向 USS 主站报告;如果造成故障的排除,可以使用此输入端清除驱动装置的状态,即复位。注意这是驱动装置的操作。f. DIR: 电机运转方向。其“0/1”状态决定运行方向g.Drive: 驱动装置在 USS 网络上的站号。从站必须先在初始化时激活才能进行h.Type: 向 USS_CTRL 功能块指示驱动装置类型= 0 MM 3 系列,或更早的1 MM 4 系列,SINAMICS G 110i. Speed_SP: 速度设定值。速度设定值必须是一个实数,给出的数值是变频器的频率范围百分比还是绝对的频率值取决于变频器中的参数设置(如 MM 440 的 P2009)j

10、. Resp_R: 从站应答确认信号。主站从 USS 从站收到有效的数据后,此位将为“1"一个程序扫描周期,表明以下的所有数据都是最新的k. Error: 错误代码。0 = 无出错。其他错误代码请参考l. Status: 驱动装置的状态字。此状态字直接来自驱动装置的状态字,表示了当时的实际运行状态详细的状态字意义请参考相应的驱动装置手册。m. Speed: 驱动装置返回的实际运转速度值,实数。是否频率值跟随设定值的规格化设定n. Run_EN: 运行模式反馈,表示驱动装置是运行(为 1)还是停止(为 0)o. D_Dir: 指示驱动装置的运转方向,反馈信号p. Inhibit: 驱动

11、装置状态指示(0 - 未,1 -状态)。状态下驱动装置无法运行。要清除状态,故障位必须复位,并且 RUN, OFF2 和 OFF3 都为 0q. Fault: 故障指示位(0 - 无故障,1 - 有故障)。表示驱动装置处于故障状态,驱动装置上会显示故障代码(如果有显示装置)。要复位故障状态,必须先消除引起故障的原因,然后用 F_ACK 或者驱动装置的端子、或操作面板复位故障状态。USS_CTRL 已经能完成基本的驱动装置USS 指令库中的参数读写指令实现。,如果需要有的参数选项,可以选用5、MM 440 的参数设置5.1源参数设置命令驱动装置的启动、停止、正/反转等功能。源参数设置决定了驱动装

12、置从何种途径接受信号。源由参数 P0700 设置,选择 55.2 设定源参数设定值驱动装置的转速/频率等功能。设定源参数决定了驱动装置从哪里接受设定值(即给定)。设定源由参数P1000设置:同样选择 55.3 USS 通信的参数设置主要参数有:1. P0700: 设置 P07000 = 5,即源来自 COM Link 上的 USS 通信2. P1000: 设置 P10000 = 5,即设定源来自 COM Link 上的 USS 通信3. P2009: 决定是否对 COM Link 上的 USS 通信设定值规格化,即设定值将是运转频率的百分比形式,还是绝对频率值= 0 不规格化 USS 通信设定

13、值,即设定为变频器中的频率设定范围的百分比形式。1 对 USS 通信设定值进行规格化,即设定值为绝对的频率数值。4. P2010: 设置 COM Link 上的 USS 通信速率。根据 S7-200 通信口的限制,支持的通信波特率有:= 4 2400 bit/s5 4800 bit/s6 9600 bit/s7 19200 bit/s8 38400 bit/s9 57600 bit/s12 115200 bit/s5. P2011: 设置 P20110 = 0 至 31,即驱动装置 COM Link 上的 USS 通信口在网络上的从站地址。USS 网络上不能有任何两个从站的地址相同。6. P2

14、012: 设置 P20120 = 2,即 USS PZD 区长度为 2 个字长。7. P2013: 设置 P20130 = 127,即 USS PKW 区的长度可变。8. P2014: 设置 P20140 = 0 至 65535,即 COM Link 上的 USS 通信信号中断超时时间,为 ms。如设置为 0,则不进行此端口上的超时检查。此通信信号中断,指的是接收到的对本装置有效通信报文之间的最大间隔。如果设定了 超时时间,报文间隔超过此设定时间还没有接收到下一条,则会导致 F0072 错误,变频器将会停止运行。通信恢复后此故障才能被复位。根据 USS 网络通信速率和站数的不同,此超时值会不同

15、。如果要设定超时值,请参考相 关表格,并选取一个适当的数值。9. P0971: 设置 P0971 = 1,上述参数将保存入 MM 440 的 EEPROM 中。USS 通信是由 S7-200 和驱动装置配合,因此相关参数一定要配合设置。如通信速率设置不一样,当然无法通信。| 回复| 2010-11-05 15:24:38 5 楼天涯我这有个西门子的 PLC 和变频器 DP 通讯一、硬件组态1. 将 MASTERDRIVES CBP/CBP2 加入组态2. Profibus 地址3. 将 MICR4 加入组态4. Profibus 地址二、选择数据格式1. MASTERDRIVE 中可供选择的

16、PP0 类型2. I/Q address3. MICR44. I/Q address中可供选择的数据格式Step 7 中的编程创建数据块 DB1说明:1. 在 Step7 中对 PKW (参数区)读写参数时调用 SFC14 和 SFC152. SFC14(“DPRD_DAT”)用于读 Profibus 从站的数据3. SFC15(“DPWR_DAT”)用于将数据写入 Profibus 从站4. W#16#100(即 256)是硬件组态时 PKW 的起始地址举例读参数 r0151. W#16#100(即 256)是硬件组态时 PKW 的起始地址2 .将从站数据读入 DB1.DBX0.0 开始的

17、8 个字节(P#DB1.DBX0.0 BYTE 8) PKE -> DB1.DBW0IND -> DB1.DBW2PWE1 -> DB1.DBW4 参数值的高字位PWE2 -> DB1.DBW6 参数值的低字位3 .将 DB1.DBX28.0 开始的 8 个字节写入从站(P#DB1.DBX28.0 BYTE 8) DB1.DBW28 -> PKEDB1.DBW30 -> IND参数值的高字位 DB1.DBW32 -> PWE1 参数值的低字位 DB1.DBW34 -> PWE2 举例读参数 P401.21. W#16#100(即 256)是硬件组

18、态时 PKW 的起始地址2 .将从站数据读入 DB1.DBX0.0 开始的 8 个字节(P#DB1.DBX0.0 BYTE 8) PKE -> DB1.DBW0IND -> DB1.DBW2PWE1 -> DB1.DBW4 参数值的高字位PWE2 -> DB1.DBW6 参数值的低字位3 . 将 DB1.DBX28.0 开始的 8 个字节写入从站(P#DB1.DBX28.0 BYTE 8) DB1.DBW28 -> PKEDB1.DBW30 -> IND参数值的高字位 DB1.DBW32 -> PWE1 参数值的低字位 DB1.DBW34 ->

19、PWE2 举例3. 读参数 U001.21. W#16#100(即 256)是硬件组态时 PKW 的起始地址2 .将从站数据读入 DB1.DBX0.0 开始的 8 个字节(P#DB1.DBX0.0 BYTE 8) PKE -> DB1.DBW0IND -> DB1.DBW2PWE1 -> DB1.DBW4 参数值的高字位PWE2 -> DB1.DBW6 参数值的低字位3 . 将 DB1.DBX28.0 开始的 8 个字节写入从站(P#DB1.DBX28.0 BYTE 8) DB1.DBW28 -> PKEDB1.DBW30 -> IND参数值的高字位 DB1

20、.DBW32 -> PWE1参数值的低字位 DB1.DBW34 -> PWE2举例(写参数)4.写参数 P401.1 (将 W#16#1000写入 P401.1 中)1.将 W#16# 8191 写入 DB1.DBW28 (PWE)1. W#16#100(即 256)是硬件组态时 PKW 的起始地址2 .将从站数据读入 DB1.DBX0.0 开始的 8 个字节(P#DB1.DBX0.0 BYTE 8) PKE -> DB1.DBW0IND -> DB1.DBW2PWE1 -> DB1.DBW4 参数值的高字位PWE2 -> DB1.DBW6 参数值的低字位3

21、 . 将 DB1.DBX28.0 开始的 8 个字节写入从站(P#DB1.DBX28.0 BYTE 8) DB1.DBW28 -> PKEDB1.DBW30 -> IND参数值的高字位 DB1.DBW32 -> PWE1参数值的低字位 DB1.DBW34 -> PWE2对 PZD (过程数据)的读写说明:1. 在 Step7 中对 PZD (过程数据)读写参数时调用 SFC14 和 SFC152. SFC14(“DPRD_DAT”)用于读 Profibus 从站的数据3. SFC15(“DPWR_DAT”)用于将数据写入 Profibus 从站4. W#16#108(即

22、 264)是硬件组态时 PZD 的起始地址5. 对特殊结构的 PZD 可用 PQW , PIW 进行读写举例5: 对 PPO5 中 10PZD 的读写| 回复| 2010-11-05 17:34:16 8 楼ANDYLIU008这个严重需要学习一下| 回复| 2010-11-06 18:37:46 9 楼芳季我上个程序 200 的。用一个通讯口4 个变频器,OMRON 的 3G3MV。和一个伺服,富仕的 w 系列。两个采用各自的通讯协议。OMRON 用标准 MODBUS 协议。富仕用协议。程序连续与 5 个下位通讯。不断切换软协议在协议和 MODBUS 之间。DB1 中与 PZD 相对应的数据

23、字1.在 P918 中设置 Profibus 地址,必须与 Step 7 中设置相同.地址不能重复.2.十位置“1”. PZD1 = W#16#X4XX关于一楼的 USS 协议,我前用了一下,的变频器通讯没什么问题,但多台变频器通讯,有时的数据读出的是零,有没有多台通讯的例子,让大家学习一下,!程序没有完成。还有部分没有写好。一定不能用于使用上。只能了解一下思路吧。| 回复| 2010-11-06 18:38:04 10 楼芳季ORGANIZATION_BLOCK 主程序:OB1 TITLE=VAR无用:BOOL;转换中间值:DWORD; END_VARBEGINNetwork 1 LD SM

24、0.1 CALL SBR0Network 2 LSCR S0.0Network 3 / 这里要定义好发送和接收的标志位。确立通讯中断。LD SM0.0 CALL SBR3 SCRT S0.1Network 4 SCRENetwork 5 LSCR S0.1Network 6 / 对于读参数,不变的值/ 填写发送缓冲区。需要填写 站址;储存类别;地址 L;地址 M;地址 H LD SM0.0MOVB 3, VB7MOVB 3, VB20MOVB 1, VB21MOVB 1, VB22MOVB 0, VB23Network 7 LD SM0.0 CALL SBR6 SCRT S0.2INCD AC

25、0Network 8 SCRENetwork 9 / 这里要超时;接收的错误;数据是否被修改。LSCR S0.2Network 10 / 一进入就开始计算通讯时间。LDN M14.1 TON T40, 5Network 11 / 通讯超时,LD T40 EUS M14.5, 1R SM187.7, 1RCV VB50, 1Network 12 / 接收中断产生。应答没有响应,马上接收。报告超时。等待处理。/ 这是 32 位 BCD 码转换 32 位十进制过程。LD M14.0= M14.1CALL SBR5, VD79, L0.0, VD100 R M14.5, 1R M14.0, 1= Q0

26、.0Network 13/ 在接收回来的LD M14.1 LPSA V76.0S M14.4, 1 LPPAN V76.0 R M14.4, 1Network 14 / 无/ 接收回来的参数与/ 读参数超时LDN M14.4 ON M14.7A M14.1AD= VD100, VD400 O T40LPSAN SM0.0 SCRT S0.7 LPPA SM0.0SCRT S0.1 R T40, 1当中位有了,作一个标志。、无消警请求,接收相等,切换协议 M 超时了也不管了。切换 M。中的参一致。则无须再发送。直接转到协议 m 切换Network 15 / 收完。不管值等不等,有消警要求就消警。

27、LD M14.1A M14.4 A M14.7SCRT S0.5Network 16 / 收完。值不等。只有无LDN M14.4 AN M14.7 A M14.1AD<> VD100, VD400 SCRT S0.3Network 17 SCRENetwork 18 LDN M14.4 R M14.7, 1Network 19 LSCR S0.3Network 20 / 对于写参数,不变的值了才写值。/ 填写发送缓冲区。需要填写 站址;储存类别;地址 L;地址 M;地址 H LD SM0.0MOVB 3, VB7MOVB 3, VB20MOVB 1, VB21MOVB 1, VB2

28、2MOVB 1, VB23Network 21 LD SM0.0MOVB 0, VB26CALL SBR10, VD400, L0.0, VD27Network 22 LD L0.0 CALL SBR6 SCRT S0.4INCD AC0Network 23 SCRENetwork 24 LSCR S0.4Network 25 LDN M14.0 TON T41, 5Network 26LD T41EUS M14.5, 1R SM187.7, 1RCV VB50, 1Network 27 LD M14.0= M14.2R M14.5, 1R M14.0, 1= Q0.1Network 28/

29、只作标记不进行处理。LD M14.2 A V76.6S M14.6, 1Network 29 LD M14.2 A V76.0S M14.4, 1Network 30 / LD M14.2O T41 LPSAN SM0.0 SCRT S0.7 LRDA SM0.0 SCRT S0.1 LPPR T41, 1Network 31 SCRENetwork 32 LSCR S0.5Network 33/ 填写准备发送的LD SM0.0MOVD 16#08000117, VD20MOVW 0, VW24Network 34 / 【发伺服 6】程序自动计算令LD SM0.0CALL SBR6 SCRT

30、S0.6调试改过24 数据长度 2 数据数 18 数据部计数 14 指INCD AC0Network 35 SCRENetwork 36 LSCR S0.6Network 37 LDN M14.3 TON T42, 5Network 38 LD T42EUS M14.5, 1R SM187.7, 1RCV VB50, 1Network 39 / LD M14.0S M14.3, 1R M14.5, 1R M14.0, 1= Q0.2Network 40 LD T42O M14.3 LPSR M14.3, 1 A SM0.0 SCRT S0.1 LPPAN SM0.0 SCRT S0.7Netw

31、ork 41 SCRENetwork 42/调试修改 0.7 改 0.1=/=/=/=/= LSCR S0.7Network 43 LD SM0.0 S M15.0, 1Network 44 LD M15.2 SCRT S1.0Network 45 SCRENetwork 46/ 让 Mbus_Ctrl 指令执行一个周期后再继续。LD M15.0= M15.2Network 47 LSCR S1.0Network 48 /Network 49 / 固定内容: 从站地址 读写状态MODBUS 地址 数据数 缓冲区间接寻址/指示通讯为读状态。给定通讯对象的地址。连续数据数。LD SM0.0 MOV

32、B 0, VB202MOVD 40045, VD203MOVW 1, VW207Network 50 / 可变内容/ 初始化要定义正确站号。变频器站号从 3 开始。7 是空的第一个站址。LDB>= VB201, 7MOVB 3, VB201Network 51 / 可变内容/ 根据目前站号,更新通讯缓冲区指针。/ 资料填写完毕。提交申请LDN M15.1 LPSAB= VB201, 3MOVW 300, VW211 LRDAB= VB201, 4MOVW 302, VW211LRDAB= VB201, 5MOVW 304, VW211 LRDAB= VB201, 6MOVW 306, V

33、W211 LPPS M15.1, 1Network 52/ 请求已经接纳。LDN M24.2 SCRT S1.1Network 53 SCRENetwork 54 LSCR S1.1Network 55/ 已经有结果了。兼做出错处理。LDN M15.1 A M24.2 SCRT S1.2AB<> VB213, 0S M24.3, 1Network 56 SCRENetwork 57 LSCR S1.2Network 58/更新通讯参数,准备下一个站的通讯。:从站地址读写状态/ MODBUS 地址/ 数据数/ 缓冲区间接寻址Network 59 / 固定内容LDN M15.1LPSM

34、OVB 1, VB202MOVD 40002, VD203MOVW 2, VW207AB= VB201, 3MOVW 310, VW211LRDAB= VB201, 4MOVW 314, VW211 LRDAB= VB201, 5MOVW 318, VW211 LRDAB= VB201, 6MOVW 322, VW211 LPPS M15.1, 1Network 60 LDN M24.2 SCRT S1.3Network 61 SCRENetwork 62 LSCR S1.3Network 63/ 已经有结果了。兼做出错处理。LDN M15.1 A M24.2 LPSEUINCB VB201

35、LRDAN C0 SCRT S1.0 LRDA C0R M15.0, 1 SCRT S0.0 LPPAB<> VB213, 0S M24.3, 1Network 64 SCRENetwork 65/ 这是计算 MODBUS 通讯多少次后伺服再通讯 1 次。LD S1.3 LD C0CTU C0, VW404Network 66 LD M15.0= L60.0 LD M15.0= L63.7 LD L60.0CALL SBR2, L63.7, 9600, 2, 1000, M24.1, VB200Network 67 LD M15.0= L60.0 LD M15.1 A M24.2=

36、 L63.7 LD L60.0CALL SBR7, L63.7, VB201, VB202, VD203, VW207, VD209, M24.2, VB213Network 68 LD M15.1 EU= M15.3Network 69 LD M24.2 R M15.1, 1END_ORGANIZATION_BLOCK SUBROUTINE_BLOCK 初始 0:SBR0 TITLE=BEGINNetwork 1 LD SM0.0 ENINetwork 2 LD SM0.0MOVD 16#01000000, SD0Network 3/ 变频器通讯站号由 3 开始。LD SM0.0MOVB 3

37、, VB201Network 4/ 接收缓冲区从 vb300 开始LD SM0.0MOVD &VB300, VD209 END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK 域和:SBR1TITLE=子程序注释/程序目的:把指定连续 V 区域中的整数进行求和。适用范围:/不适合在中断中使用。建议在使用时通过边缘指令调用一次。 参数类型:连续数 字。总共参与计算的字的个数。起始位 偏移量,一个数据的地址相对 VB0 的增量。模式 字节。计算对象的位长。0:8 位;1:16 位;2:32 位。执行过程:每执行一次得到一次计算结果。程序:YHVAR_INPUT连续数:W

38、ORD;首址偏移:WORD; / 这是对 VB0 的偏移量。模式:BYTE; / 0:字节;1:字;2:双字END_VARVAR_OUTPUT 域和:DWORD; END_VAR VAR循环值:WORD; 过程量:DWORD; 起始位:DWORD; END_VAR BEGINNetwork 1 / 此 POU 受保护,不能编辑和查看。END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK MBUS_CTRL_P1:SBR2TITLE=本代码归西门子能源与自动化公司专有,它属于附加 库”的一部分。VAR_INPUTMode:BOOL; / 1 = Modbus, 0 = PP

39、I(终止 Modbus) Baud:DWORD; / 1200, 2400 . 115200Parity:BYTE; / 0 = 无,1 = 奇校验,2 = 偶校验Timeout:INT; / 以毫秒表示的从站响应超时END_VARVAR_OUTPUTDone:BOOL; / 完成标记(始终设置)Error:BYTE; / 错误状态包“Modbus主站端口 1END_VAR VARAC0save:DWORD; AC1save:DWORD; AC2save:DWORD; AC3save:DWORD;END_VARBEGINNetwork 1 / 此 POU 受保护,不能编辑和查看。END_SUB

40、ROUTINE_BLOCK SUBROUTINE_BLOCK 协议 S3:SBR3TITLE=子程序注释BEGINNetwork 1 LD SM0.0MOVB 2#1001001, SMB130Network 2 / 发送完成定义中断LD SM0.0 ATCH INT0, 26ATCH INT1, 24Network 3 / SC 起始字符LD SM0.0= SM187.6Network 4 / ec 结束字符LDN SM0.0= SM187.5Network 5 / il 空闲线时间LD SM0.0= SM187.4Network 6 / c/m 字符间隔计时/ LDN SM0.0= SM1

41、87.3Network 7 / trm 超时LD SM0.0= SM187.2Network 8 / bk 断点条件LDN SM0.0= SM187.1Network 9 / 固定是 0 LDN SM0.0= SM187.0Network 10 / 起始字符LD SM0.0MOVB 16#5A, SMB188Network 11 / 空闲线时间LD SM0.0MOVW 2, SMW190Network 12 / 超时结束LD SM0.0MOVW 50, SMW192间隔计时Network 13 / 最大字符数LD SM0.0MOVB 50, SMB194 END_SUBROUTINE_BLOC

42、K SUBROUTINE_BLOCK 协议 M4:SBR4TITLE=子程序注释BEGINNetwork 1 / 网络标题/ 网络注释LD SM0.0 DTCH 24DTCH 26 END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK BCD_DI:SBR5 TITLE=/ LIBARY: BCD/ =/ LIABILITY/ Siemens AG does not accept liability of any kind for damages arising from the use of this application, except where it is ob

43、liged to by law, in cases such as damage to items usedfor/al purposes,al injury, willful damage or gross negligence./ WARRANTY/ The program examples given are specific solutions to complex tasks which were worked on by Customer Support. We must also point out that it is not possible in the current s

44、tate of the technology to exclude all errors in software programs under all conditions of use.The program examples were prepared according to the best of our knowledge. However, we cannot accept any liability beyond the standard guarantee for Class C software in accordance with our General Terms of

45、Sale for Software Products for Automation and Drive Technology". The program examples can be purchased on the Internet as single licenses. They may not be transferred to a third party./ PASSWORD/ The password of the library is "1234"/ BCD_DI/ BCD to Double Integer Conversion/ Inputs/O

46、utputs Operands Data Types/ IN (LAD, FBD) VD, ID, QD, MD, SD, SMD, LD, T, C, AID, AC, Constant, *VD, *AC, *LD DINT/ OUT VD, ID, QD, MD, SD, SMD, LD, T, C, AC, *VD, *LD, *AC DINT/ The BCD to Double Integer instruction converts the binary-coded decimal value IN to an double integer value and loads the

47、 result into the variable specified by OUT. The valid range for IN is 0 to 99999999 (BCD)./ The ENO-bit (output enable) is set in the valid range of values and 0 if the input-values are out of range.VAR_INPUT IN:DINT; END_VAR VAR_OUTPUT ENO:BOOL; OUT:DINT; END_VAR VAR TEMP1:INT; TEMP2:DINT; TEMP3:DI

48、NT; TEMP4:INT; TEMP5:DINT; TENO1:BOOL; TENO2:BOOL; END_VARBEGINNetwork 1 / 此POU 受保护,不能编辑和查看。END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK 发伺服 6:SBR6TITLE=本程序自动计算/ 24 数据长度/ 2 数据数/ 18 数据部计数/ 14 指令VAR连续数:INT;发送指针:DWORD; 偏移:INT;和首指针:DWORD; BCC 位置:DWORD; 连续数 D:DWORD; 和 32 位:DWORD; END_VARBEGINNetwork 1/ 确定数据长度。读

49、参数。LDB= VB23, 0MOVB 7, VB24Network 2/ 确定数据长度。写参数。LDB= VB23, 1MOVB 5, VB24Network 3/ 确定数据长度。复LDB= VB23, 16#17MOVB 0, VB24。Network 4 / 数据部计算 读参数和复位LDB= VB23, 0OB= VB23, 17MOVB 6, VB18MOVB 23, VB2o 数据数计算Network 5 / 数据部计算 写参数。LDB= VB23, 1MOVB 11, VB18MOVB 28, VB2Network 6 / 指令LDB= VB23, 0MOVB 16#50, VB1

50、4Network 7 / 指令LDB= VB23, 1OB= VB23, 17MOVB 16#51, VB14Network 8 / 计算发送字节数LD SM0.0 MOVB VB2, VB0 INCB VB0INCB VB0 INCB VB0Network 9 / 计算 BCC 位置LD SM0.0 LPSMOVD &VB0, LD2 AENOMOVD LD2, LD8+D +2, LD8 LRDBTI VB2, LW0 AENOINCW LW0数据数计算AENOITD LW0, LD16 LPPMOVD LD8, LD12+D LD16, LD12Network 10 LD SM0

51、.0CALL SBR1, LW0, LW10, 0, LD20 INVD LD20INCD LD20 INCD AC0 XMT VB0, 1END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK MBUS_MSG_P1:SBR7TITLE=本代码归西门子能源与自动化公司专有,它属于附加 库”的一部分。VAR_INPUT包“Modbus1主站端口First:BOOL; / 新消息(设置为 1对新请求扫描一次)Slave:BYTE; / 从站地址(0 到 247) RW:BYTE; / 读 = 0,写 = 1Addr:DWORD; / Modbus 地址(即 40001)Cou

52、nt:INT; / 元素个数(1 到 120 个字或 1 到 1920 位)DataPtr:DWORD; / 数据指针(即 &VB100) END_VARVAR_OUTPUTDone:BOOL; / 完成标记(0 = 忙,1 = 完成)Error:BYTE; / 错误(0 = 无错误)END_VAR VARAC0save:DWORD; AC1save:DWORD; AC2save:DWORD; END_VARBEGINNetwork 1 / 此 POU 受保护,不能编辑和查看。END_SUBROUTINE_BLOCK SUBROUTINE_BLOCK MBUSM1_P1:SBR8TITLE=本代码归西门子能源与自动化公司专有,它属于附加 库”的一部分。VAR_OUTPUTcrc:WORD; END_VAR包“Modbus1主站端口VARcount:INT; ptr:DWORD; END_VAR BEGINN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论