电动机功率 | 3kW | 外形尺寸 | 2mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 2kg |
西门子S7-1200 控制器是我们新推出产品的核心,可实现简单却高度精确的自动化任务。西门子S7-1200 控制器实现了模块化和紧凑型设计,功能强大、投资安全并且*适合各种应用。可扩展性强、灵活度高的设计,可实现标准工业通信的通信接口以及一整套强大的集成技术功能,使该控制器成为完整、全面的自动化解决方案的重要组成部分。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-06-04 16:58:46浏览次数:226
联系我们时请说明是化工仪器网上看到的信息,谢谢!
对于S7通信(如图20-16所示),在SIMATIC S7站之间可以传输更大量的数据。站与站之间通过子网互连;网络可以是MPI网络、PROFIBUS网络或以太网络。这些通信连接是静态的;在连接表中可以组态(“通过组态连接通信”)。
图20-16 S7通信
通信功能就是存在于CPU操作系统中的S7-400的系统功能块SFB。关联的实例数据块存在于用户存储器中。如果要使用S7通信,需要把来自位于系统功能块下标准库中的SFB的界面描述复制到block容器处,以产生一个用于每次调用使用的实例数据块,并且用相关实例数据块调用SFB。对于增加的输入,可以从程序的元件目录中选择SFB并自动产生实例数据块。
对于S7-300,通信功能是标准的功能块FB,可以从通信块下的标准库中找到这样的FB。把需要使用的功能块复制到block容器处,然后可以像使用一般的功能块那样使用这些功能块。
1.组态S7通信
S7通信的先决条件是组态连接表,在该表中已经定义通信连接。
通过一个通信ID为每个通信伙伴通信连接。STEP 7在编译连接表的时候分配这些连接ID。使用“本地ID”初始化本地或“自己的”模块中的FB或SFB,使用“远程ID”可以初始化通信伙伴模块中的FB或SFB。
同样的逻辑连接可以用于不同的发送/接收请求。为了区分它们,需要为连接ID增加一个工作ID,以定义发送块和接收块之间的关系。
2.初始化
S7通信必须在重启时初始化,这样才能建立与通信伙伴的连接。在CPU接收到连接表中的属性“Active connection build up=YES”(建立实际连接=YES)时,就要开始初始化。在重启OB时,按如下条件调用在循环操作中使用的通信块,并初始化参数(给定的这些参数是有效的):
●REQ= FALSE
●ID=来自连接表中的本地连接ID(数据类型WORD W#16#xxxx)
●R_ID=请求ID,可以用于定义“block pair”(“块对”)(数据类型DWORDDW#16#xxxx xxxx)
●PI_NAME=ASCII代码中内容为“P_PROGRAM”的变量(例如,CHAR数据类型的数组ARRAY[1..91)。
在程序循环中,必须连续调用这些块,直到参数DONE的信号状态为“1”。参数ERROR和STATUS给出的信息涉及发生的错误以及工作的状态。
在重启时无需切换数据区域(涉及ADDR_x、RD_x和SD_x参数)。除了在S7-400系统中:对于SFB 8 USEDN、SFB 9 URCV、SFB 14 GET和SFB 15 PUT,当*调用的时候,要创建保证连续性用的通信缓冲器,并且为进一步调用定义每次传输的大数据量。
3.循环操作
在循环操作中,可以通过参数REQ和EN_R无条件地调用通信块并控制数据传输。每次通信块处理之后,必须立刻确定参数NDR、DONE、ERROR和STARUS的值,因为这些参数只保持到下次调用前有效。
对于S7-300,只能把位存储器和数据地址区域给数据类型为ANY的参数(SD_1、RD_1和ADDR_1)。
以下系统功能处理位于不同站的通信伙伴之间的数据传输:
●SFC 65 X_SEND
发送数据。
●SFC 66 X_RCV
接收数据。
●SFC 67 X_GET
读数据。
●SFC 68 X_PUT
写数据。
●SFC 69X_ABORT
断开连接。
这些SFC的参数在表20-13中列出。
表20-13 用于站外S7基本通信的SFC参数
1.SFC 65 X_SEND发送数据
这项工作以REQ=“1”和BUSY=“0”作为开始(“*次调用”)。在工作进行过程中,BUSY设定为1。这样,对于参数REQ的改变将不再有任何影响。在工作结束后,BUSY复位到0。如果REQ还是为1,工作将立刻重新开始。
在*调用时,操作系统把来自源区域的所有数据都传输到内部缓冲器,然后把这些数据传到通信伙伴CPU。
在发送过程期间.BUSY等于“1”。当通信伙伴给出信号表示接收到数据时,BUSY才变为“0”,发送任务完成。
如果CONT=“0”,则可以被其他通信连接使用。如果CONT=“1”,则连接仍然保持。参数REQ_ID能够分配一个ID给发送数据,通过SFC X_RCV能够估计该发送数据。
参数SD描述了这样的区域,即从该区域读取即将发送的数据。实参可以是地址、变量或以ANY指针寻址的数据区域。接收和发送数据并不检测数据类型的匹配。
2.SFC 66 X_RCV接收数据
接收的数据存放在内部缓冲器中。多个信息包按照它们到达的先后顺序排成队列。
用EN_DT=“0”检测数据是否接收到,如果接到,则NDA为“1”,RET_VAL给出接收到数据的字节数,并且REQ_ID和SFC 65 X_SEND中相应的参数*。当EN_DT=“1”时,SFC开始把*个(旧的)信息包传输到目的区域;随后NDA变为“1”并且RET_VAL列出传输的字节数。如果EN_DT为“1”但内部列队中没有数据,则NDA为“0”。
温重启后,队列中的所有数据包全部丢失。
在重启或断开连接的情况下,若已经“询问的”的EN_DT=“0”,则早进入队列的数据将保持;否则会丢失,就像其他时候进入的队列一样。
RD参数描述了这样的区域,在这个区域里会写入接收数据。实参可以是地址、变量或是用ANY指针寻址的数据区域。
发送和接收数据并不需要检测数据类型匹配。当接收数据不相关时,允许在X_RCV中使用一个“空”的ANY指针(NIL指针)作为RD参数。
3.SFC 67 X_GET读数据
这项工作以REQ=“1”和BUSY=“0”作为开始(“*次调用”)。在工作进行过程中,BUSY设定为“1”。这样,对于参数REQ的改变将不再有任何影响。
在工作结束后,BUSY复位到“0”。如果REQ还是“1”,工作将立刻重新开始。
当读数据过程启动后,在通信伙伴CPU里的操作系统加载并发送由VAR_ADDR的数据。调用SFC时,把接收数据加载到由RD参数的目的区域,然后RET_VAL列出传输的字节数。
如果CONT=“0”,通信连接断开。如果CONT=“1”,连接将保持。当通信伙伴在STOP模式时,数据仍然能读取。
RD和VAR_ADDR参数描述了这样的区域,即从该区域读取传输数据或向该区域写入接收数据。实参可以是地址、变量或为以ANY指针寻址的数据区域。发送的和接收的数据不进行数据类型匹配检测。
4.SFC 68 X_PUT写数据
这项工作以REQ=“1”和BUSY=“0”作为开始(“*次调用”)。在工作进行过程中,BUSY设定为1。这样,对参数REQ的改变将不再有任何影响。
在工作结束后,BUSY复位到0。如果REQ还为1,工作将立刻重新开始。
当写数据过程启动后,在*调用时,操作系统把所有来自由SD参数的源存储区数据传输到内部缓冲器,并把这些数据送到通信伙伴CPU。在接收方,CPU操作系统把接收数据写到VAR_ADDR参数的数据区域,然后BUSY设为“0”。
接收方在STOP状态时,数据仍然可以写入。
RD和VAR_ADDR参数描述了这样的区域,从该区域读取传输数据或向该区域写入接收数据。实参可以是地址、变量或以ANY指针寻址的数据区域。发送的和接收的数据不用进行数据类型匹配检测。
5.SFC 69 X_ABORT断开连接
REQ=“1”断开与通信伙伴的连接。而用SFC X_ABORT只能断开那些在同一站内用SFC X_SEND、X_GET或X_PUT建立起来的连接。