电动机功率 | 3kW | 外形尺寸 | 4mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 3kg |
西门子S7-1500PLC 控制器产品系列中具有较大容量程序及数据存储器的 CPU,适用于具有较高程序范围和联网要求的苛刻应用。具有*处理速度,适用于二进制和浮点运算。用于系列机器、机器以及工厂中的跨领域自动化任务,在具有集中式和分布式 I/O 的生产线上作为集中式控制器使用。
![]() |
参考价 | ¥622 |
订货量 | 1 |
更新时间:2019-06-11 12:23:26浏览次数:259
联系我们时请说明是化工仪器网上看到的信息,谢谢!
江西西门子S7-1500PLC模块代理(欢迎您)
只需一个站编程的S7基本通信
除了上述使用SFC 65“X_SEND”和SFC 66“X_RCV”的双向通信之外,还可以实现单向通信。编写程序的一方的CPU作客户机,另一方作服务器,后者不需要编写程序。客户机是通信的主动方,服务器是被动方。
在S7基本通信中,S7 - 300或S7 - 400都可以作客户机或服务器,S7 - 200只能作服务器。
在STEP 7中创建一个项目(见随书光盘中的例程MPI_UC_2),生成两个站,CPU 413-2DP作客户机,CPU 315 - 2DP作服务器。将它们连接到MPI网络上,它们的MPI站地址分别为2和3。在单向通信中,客户机调用SFC 68“X_PUT”来写服务器中的系统地址区,调用SFC 67“X_GET”来读取服务器中的数据。在读取服务器数据时,客户机首先要发送读取命令给客户机。为了保证发送读、写命令的时间间隔,在循环中断组织块OB35中调用SFC 68“X_PUT”和SFC 67“X_GET”。下面是客户机的OB35中的程序:
程序段1:准备要发送的数据
L DB1.DBW 0
+ 1
T DB1.DBW 0 //每100 ms将DB1.DBW加1
L ID 0
T DB1.DBD 2 //用本站的ID0控制对方的QD4
程序段2:用SFC 68写对方的数据区
CALL “X_PUT” //调用SFC 68
REQ := M0.0 //写数据使能信号
CONT := TRUE //发送完成后保持连接
DEST_ID :=W#16#3 //对方的MPI地址
VAR_ADDR:=P#DB2.DBX0.0 BYTE 76 //通信伙伴要写入数据的地址区
SD := P#DB1.DBX0.0 BYTE 76 //存放本站要发送的数据的地址区
RET_VAL := MW2 //状态字,返回的错误信息
BUSY :=M0.1 //为1时写数据未完成
程序段3:用SFC 67读对方的数据区
CALL“X_GET” //调用SFC 67
REQ :=M0.2 //读数据使能信号
CONT := TRUE //读数据完成后保持连接
DEST_ID :=W#16#3 //对方的MPI站地址
VARADDR:=P#DB1.DBX0.0 BYTE 76 //要读取的通信伙伴的地址区
RET_VAL := MW4 //通信状态字,返回的错误信息
BUSY :=M0.3 //为l时读数据未完成
RD := P#DB2.DBX0.0 BYTE 76 //本站存放读取的数据的地址区
L DB2.DBD 2
T QD 0 //用对方的ID0控制本站的QD0
程序段4:断开连接
CALL “X_ABORT” //调用SFC 69
REQ := M0.4 //使能信号
DEST_ID :=W#16#3 //对方的MPI地址
RET_VAL :=MW6 //返回的错误信息
BUSY :=M0.5 //为1表示操作未完成
如果在3号站用SFC 67“X_GET”和SFC 68“X_PUT”读写2号站的系统数据区,可以使用与上面基本上相同的程序,只是需要将SFC中的DEST_ID(对方的MPI地址)改为W#16#2。
SFC 69“X_ABORT”的参数REQ为1时,将会中断一个由SFC“X_SEND”、“X_GET”或“X_PUT”建立的连接。如果上述SFC的工作已经完成(BUSY为0),调用SFC 69“X_ABORT”后,通信双方的连接资源被释放。
下面是服务器( CPU 315 -2DP)的OB1中的程序:
L ID 0
T DB1.DBD 2 //用本站的ID0控制对方的QD0
L DB2.DBD 2
T QD 4 //用通信伙伴的ID0控制本站的QD4
OB100中的程序与项目MPI_UC_1的相同,调试程序的方法也与该项目基本上相同。
S7基本通信不用组态静态连接,也不用在全局数据表中组态。
例程“MPI_UC_1”用S7基本通信在两台CPU 315 -2DP之间交换数据。要求将它们的DB 1中76B的数据发送到对方的DB 2中。在STEP 7中创建一个项目,生成两个站,CPU均为CPU 315 -2 DP(见图9-12),将它们连接到MPI网络上,它们的MPI站地址分别为2和3。通信的双方都需要调用通信块,一方调用X_SEND来发送数据,另一方调用X_RCV来接收数据二这种通信方式适用于S7 - 300/400之间的通信。
如果在OB1中调用SFC 65“X_SEND”,发送的频率太快,将加重CPU的负荷,因此在循环中断组织块OB35中调用SFC 65,每隔一定的时间间隔(默认值为100 ms)调用一次SFC 65。下面是2号站的OB35中的程序:
图9-12 SIMATIC管理器
程序段1:准备要发送的数据
L DB1.DBW 0
+ 1
T DB1.DBW 0 //每100 ms将DB1.DBW加1
L IW 0
T DB1.DBW 2 //用本站的IW0控制对方的QW4
程序段2:通过MPI发送数据
CALL“X_SEND” //SFC 65
REQ :=M1.0 //发送请求,该参数为1时发送
CONT :=TRUE //发送完成后保持连接
DEST_ID:=W#16#3 //接收方的MPI地址
REQ_ID :=DW#16#1 //数据包标识符
SD :=P#DB1.DBX0.0 BYTE 76 //存放要发送的数据的地址区,每次发送76B
RET_VAL:=MW10 //状态字,返回的故障信息
BUSY :=M1.1 //为1时正在发送,为0时发送完成
下面是2号站的OB1中接收数据的程序:
程序段1:从MPI接收数据
CALL “X_RCV” //SFC 66
EN_DT :=M0.0 //接收使能位
RET_VAL:=MW2 //状态字,返回的错误代码
REQ_ID :=MD4 //接收到的数据包的标识符
NDA :=M0.1 //为1时表示有新的数据包
RD :=P#DB2.DBX0.0 BYTE 76 //存放接收数据的地址区
L DB2.DBW 2
T QW 4 //用对方的IWO控制本站的QW4
程序段2:断开连接
CALL “X_ABORT” //SFC 69
REQ :=M0.2 //使能信号
DEST_ID : = W#16#3 //对方的MPI地址
RET_VAL:=MW8 //返回的错误信息
BUSY :=M0.3 //为1表示操作未完成
3号站的程序与2号站的相同,只是将SFC中的DEST_ID由W#16#3改为W#16#2。
在2号站的初始化程序OB100中,调用SFC 21,将存放发送数据的DB 1的各个字预置为16#2222,将接收数据的DB 2的各个字清零。3号站的OB100基本上相同,区别在于将DB 1的各个字预置为16#3333。
在运行时,用变量表监视通信双方接收的DB 1的第1个字DBW0和后一个字DBW74(见图9-13)。为了观察数据传输的动态效果,将发送站的JW0送到DB1. DBW2,对方将接收到的对应的DB2.DBW2传送到QW4,相当于用发送站的IW0控制对方的QW4。在运行时改变IW0的状态,观察对方的QW4是否随之而变。
图9-13 3号站的变量表
在变量表中,通过修改M1.0、M0.0和M0.2的值,来控制数据的发送、接收和断开连接。发送使能位M1.0和对方的接收使能位M0.0必须同时为1状态,才能传送数据。
在每100 ms执行一次的OB35中,将发送的第1个字DB1.DBW0加1。在运行时同时打开两个站的变量表,观察接收到的DB2. DBW0的值是否不断增大。
因为SFC 65的参数CONT为1(TRUE),即使发送请求位M1.0变为0状态,连接仍然保持。可以通过置位M0.2来使能SFC 69,断开已建立的连接。断开连接后,可以看到接收到的DB2. DBW0停止变化。
本例因为每个站既要发送,也要接收,一共占用了两个连接。进入在线模式后,可以在CPU的模块信息对话框的“通讯”选项卡中,查看“其他通讯”(S7基本通信)的连接个数。
如果需要发送的数据超过76B,可以将数据分为若干个数据包来发送,即多次调用SFC65“X_SEND”。每次调用的接收方的MPI地址DEST_ID相同,但是数据包标识符REQ_ID不同。接收方调用SFC 66“X_RCV”,根据接收到的数据包的标识符REQ_ID判别收到的是哪一包数据,并分别存放到不同的地址区。
江西西门子S7-1500PLC模块代理(欢迎您)