sfc14和15的应用
- 格式:doc
- 大小:371.50 KB
- 文档页数:14
实验四:主站通过CPU集成PROFIBUS-DP接口与智能从站通信一、实验目的1、掌握主站与智能从站通信组态方法和参数设置;2、用SFC14和SFC15进行数据交换编程。
二、实验设备1、PROFIBUS-DP一个主站S7-300 CPU315-2DP2、两个智能从站CPU315-2DP3、MPI网卡CP56114、PROFIBUS总线连接器及电缆5、计算机(带STEP7软件)三、实验内容建一主站CPU315-2DP(站地址为2),两个从站CPU315-2DP(站地址分别为3和4),设置主从通信的通信接口区,使主站与各从站进行通信。
控制要求:2号主站按下启动按钮,使2号站皮带首先启动,5S后启动3号站皮带,5S后启动4号站皮带;2号主站按下停止按钮,4号站皮带立即停止,5S后3号站皮带停止,5S后2号主站皮带停止。
四、实验操作步骤1、组态3号从站(1)、新建一项目,名称为智能从站。
在此项目之下插入一个S7300的从站,双击HARDWARE,进入“HW Config”窗口。
依次插入UR、PS、CPU等模块。
(2)、新建PROFIBUS(1)网络:在放入CPU模块的同时,如下图按要求新建一PROFIBUS(1)网络。
系统为CPU300定义的在网络上的节点为3; PROFIBUS(1)网络的属性设置在“Network setting”选项卡中设置。
(3)、设置从站通信接口区双击CPU315-2DP下“DP”项,在出现的PROFIBUS-DP属性菜单中设置①、在“工作模式”选项卡中选择“DP 从站”②、在“组态”选项卡中点击“新建”,新建一个输入通信接口区,为1个字节。
2、组态4号从站插入新的一个S7-300的站,硬件和网络组态和3号站相同,但站号为4,且输入通信接口区地址为40。
3、组态2号主站(1)、在同一项目之下插入一S7-300的主站,双击HARDWARE ,进入“HW Config ”窗口 依次插入依次插入UR 、PS 、CPU 模块。
sfc14、SFC15、SFC20
在一套400和300的PROFIBUS通讯中,300中用SFC14、SFC15打包发送、接受。
400中没有用这两个,而是用SFC20处理。
这样也运行正常,是不是不用同时用SFC14、15也可以?
最佳答案
一般你在组态S7-400与S7-300之间的PROFIBUS-DP主从通信时,在组态PROFIBUS网络时,打开各自的DP属性界面,选择“Configuration”(组态)子项时,定义S7-400和S7-300主从站的通信接口区时,其中参数Consistence“(持续性)中可以选择Unit(单元)定义按字节或字发送,如果定义为”All“(所有)表示打包发送,每包最多32个字节,如果通信数据字节为3字节或大于4字节时,要调用SFC15给数据打包,调用SFC14给数据解包。
可以分别在OB1中编写S7-400和S7-300的通信程序,同时调用SFC14和SFC15,建立主站-从站通信数据区对应关系。
由于赋值指令MOVE只能复制字节、字或双字数据对象,而SFC20(BLKMOVE)是当用户自定义数据类型(如数组或结构)时复制数据,所有可以在S7-400PLC中调用它作为复制复杂的数据类型。
SFC15和SFC14组态步骤
一、准备方案:
1.确定控制对象,确定发送参数和接收参数。
2.根据SFC15的功能,选择合适的组态工具,明确步骤和层次结构。
3.明确发送端和接收端的I/O点,确定PLC节点地址或IP地址,分配合理的系统参数变量,布置合理的控制路径。
二、PLC组态:
1.创建“SFC15”程序块,定义相关的层次结构,设置发送参数和接收参数;
2.创建发送端I/O点,连接到SFC15程序块,并且设置相应的参数,如消息号,消息总长度等;
3.设置PLC节点地址或IP地址,并设置系统参数变量;
4.定义控制路径,将控制路径连接到SFC15程序块,使其能够正常工作;
三、编写程序:
1.打开编程软件,编写SFC15发送程序,将编程结果上传到PLC中;
2.在程序中定义相应的发送函数,以及发送参数,将发送参数与PLC 相连;
3.将控制路径和控制函数连接到SFC15程序块;
4.根据实际情况,编写相应的模块函数,组合成控制参数,以便达到发送的目的。
四、测试调试:
1.将发送程序上传到PLC,并确认程序正常运行;
2.进行在线调试,检查发送参数是否设置正确;
3.根据实际情况。
PD01与S7-300Profibus通讯使用说明本系统由PLC作为PROFIBUS主站,PD01作为从站。
1.选中STEP 7(version NO. 5.5)。
图1中图12.打开软件后弹出图2对话框。
进行新建工程操作。
图23.点击“下一步”。
由于用的PLC是CPU313C - 2 DP,所以CPU(U)选择如图4。
.图3图44.点击“下一步”。
图5由于本系统是PROFIBUS通讯,所以块只选择OB1即可,编程语言选择LAD(梯形图)。
选择如图6。
图65.点击“下一步”,给工程命名。
图7命名为“Chris_PD01”,如图8。
图8 6.点击“完成”切换为如图9的画面。
图9 7.点击“SIMATIC 300 站点”。
如图10 所示。
图10 8.双击图10右画面中的“硬件”弹出画面如图11。
图119.双击图11左上角对话框内的“DP”选项来设置主站的属性。
弹出对话框如图12。
图1210.点击图12中“常规”->“属性”弹出如图13的对话框。
图1311.主站站号设置为2。
.点击“参数”->“新建”,弹出如图14对话框。
图14点击“网络设置”。
图15传输率设置为9.6Kbps,配置文件选择DP。
如图16所示。
图16点击确定。
图17点击确定。
图18点击确定,发现图19中较图图11中多出红色圈内的内容。
图1912.如果之前没有安装GSD文件,那么需要安装GSD文件。
如图20所示,点击“选项”选择“安装GSD文件”。
图20选择“安装GSD文件”后弹出如图21的对话框。
图2113.点击“浏览”找到存放GSD文件的文件夹。
如图22。
图2214.点击确定,如图23。
图23 选择“shihlin.gsd”。
图24 点击安装。
图25 选择“是”。
图26 点击确定。
图27 点击关闭,完成GSD安装工作。
15.右击图19中红色圈内的内容,如图28。
图28 在下拉菜单中选择“插入对象”。
如图29。
图29 选择“Additional Field Devices”。
打包式发送与接收主要用到SFC15(打包发送)和SFC14(打包接收)。
本例以S7-400 为主站,S7-300 为从站为例来说明打包式发送和接收的组态步骤。
先组态从站S7-300。
1、新建项目“打包式发送与接收例”,插入S7-300 站点。
2、双击“硬件”进入“HW Config”(硬件组态)环境,组态S7-300的硬件(先放入导轨,再放入电源模块,最后放入CPU 模块)。
在放入CPU 模块时,会出现“属性-RPOFIBUS 接口DP”对话框(设置CPU的地址及通信波特率),可以先点击“取消”以后再设置。
3 、双槽架中的DP 项,弹出“ 属性-DP ” 对话框。
4、,点击“常规”标签中的“属性…”按钮,出现“属性-Profibus接口”对话框,设置从站的地址。
双击进入下一步5、点击“新建…”,出现“属性-新建子网PROFIBUS”对话框,设置传输传输的波特率及配置文件(DP)。
6、点击两次“确定”,重新回到第三步的画面。
点击“工作模式”标签,选择为“DP 从站”模式。
设置从站的地址7、点击“组态”标签,进行通信接口数据区的组态。
8、点击“新建…”按钮,先组态输入数据区。
9、点击第7 步中的“新建…”,组态输出数据区域。
地址类型选择输入一致性选择全部以上选择完后点击确定10、从站S7-300 发送和接收数据区组态完后如下图所示:地址类型选择输出,一致性选择全部,以上选择完后后确定从站组态完毕,再组态主站。
11、和组态从站一样,先组态主站S7-400 的硬件。
12、在组态CPU 模块时,会自动弹出“属性-PROFIBUS 接口”,点击子网中已有的PROFIBUS(1),再点击“属性…”,设置通讯参数(波特率和配置文件)。
13、从站S7-300 挂于主站网络中。
14、从站挂于主站网络后,会自动弹出“DP 从站属性”窗口,点击“连接”标签,已经组态的所有未连接的从站显示在列表中。
鼠标按住此处,拖至PROFIBUS 图标,已经组态的从站(未连接)15、选中要连接的从站,再点击“连接”按钮,显示连接完成后的状态信息。
现场总线填空题1、现场总线是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络。
2、进入国际标准IEC62026的现场总线包括:AS-I、DeviceNet、SDS和Seriplex。
3、发送方将要发送的数据转换成信号通过物理信道传送到数据接收方的过程称为数据通信。
4、TCP/IP参数模型的四层分别是:主机至网络层、互联网层、传输层和应用层。
5、在网络中,数据有两种传输方式:基带传输和宽带传输。
6、RS-232需要进行串口通信信号测试时,可以直接将TXD和RXD相连,构成回路,7、RS-422接口通信需要4根线,它是全双工的,RS-485接口通信需要2根线,它是半双工的。
8、PROFIBUS-DP协议的两个主要部分是用户接口层和直接数据链接映射层。
9、目前的PROFIBUS标准IEC61158提供了三种传输方式:RS-485、MBP、光纤。
10、通过MPI实现PL到PLC之间的通信有三种方式:全局数据包通信方式、无组态连接通信方式、组态连接通信方式。
11、基于PROFIBUS的远程监控系统由三层组成:底层控制层、SCADA层(现场监控层)、远程监控层。
12、CAN总线报文传送由四种不同类型的帧表示和控制:数据帧、远程帧、错误帧、超载帧,长度可变的位场是数据场。
13、CAN的直接通信距离最远达10km ,通信速率最高可达1Mbps。
14、P8xC591是个8位高性能的单片机微控制器,改进的1:1内部时钟分频器在12MHz 外部时钟时实现500ns指令周期。
15、C8051F040内集成了一个12位和一个10位的逐次逼近型的A/D转换器,8位外部输入引脚可被编程为单端或差分输入。
16、USB-CAN适配器选用单向数据流方式与PC通信,使用CH375A的批量数据传输端口2上下传数据,使用中断上传端口1上传中断特征值。
17、DeviceNet的网络拓扑结构是干线-分支方式,具有线性总线拓扑结构。
1. SFB0 "CTU" SFB1 "CTD" SFB2 "CTUD" SFB4 "TON" SFB5 TOF兼容IEC61131-3的计数和计时功能块2. SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"用于PID控制41---连续42---离散43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的占空比与模拟量的数值大小成正比.3. SFC0 "SET_CLK" SFC1 "READ_CLK"用于读写PLC中的系统时间4. SFC14 "DPRD_DAT" SFC15 "DPWR_DAT"用于读写DP从站中的一致性数据如:读写用DP通讯的变频器中的控制字5. SFC20 "BLKMOV" SFC21 "FILL"块拷贝,块填充6. SFC46 "STP" SFC47 "WAIT"SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机7. SFC60 "GD_SND" SFC61 "GD_RCV"MPI的GD通讯Function BlocksFC22 "LIMIT" FC25 "MAX" FC27 "MIN"FC22 ---限幅输出FC25,FC27 --- 3个数比大小Control BlocksFB41/42/43 同SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN" FB58 "TCON_CP" FB59 "TCONT_S" 用于温度控制PIDConverting BlocksFC105 "SCALE" FC106 "UNSCALE"模拟量输入输出的比例和数据类型转换。
主站通过CPU集成PROFIBUS-DP接口与智能从站通信一、实验目的1、掌握主站与智能从站通信组态方法和参数设置;2、用SFC14和SFC15进行数据交换编程。
二、实验设备1、PROFIBUS-DP一个主站S7-300 CPU315-2DP2、两个智能从站CPU315-2DP3、MPI网卡CP56114、PROFIBUS总线连接器及电缆5、计算机(带STEP7软件)三、实验内容建一主站CPU315-2DP(站地址为2),两个从站CPU315-2DP(站地址分别为3和4),设置主从通信的通信接口区,使主站与各从站进行通信。
四、实验操作步骤1、组态3号从站(1)、新建一项目,名称为智能从站。
在此项目之下插入一个S7300的从站,双击HARDWARE,进入“HW Config”窗口。
依次插入UR、PS、CPU等模块。
(2)、新建PROFIBUS(1)网络:在放入CPU模块的同时,如下图按要求新建一PROFIBUS(1)网络。
系统为CPU300定义的在网络上的节点为3; PROFIBUS(1)网络的属性设置在“Network setting”选项卡中设置。
(3)、设置从站通信接口区双击CPU315-2DP下“DP”项,在出现的PROFIBUS-DP属性菜单中设置①、在“工作模式”选项卡中选择“DP 从站”②、在“组态”选项卡中点击“新建”,新建一个输入通信接口区,为1个字节。
2、组态4号从站插入新的一个S7-300的站,硬件和网络组态和3号站相同,但站号为4,且输入通信接口区地址为40。
3、组态2号主站(1)、在同一项目之下插入一S7-300的主站,双击HARDWARE,进入“HW Config”窗口依次插入依次插入UR、PS、CPU模块。
(2)、在放入CPU模块的同时,选择PROFIBUS(1)网络。
设置网络上的节点为2;PROFIBUS(1)网络的属性设置在“Network setting”选项卡中设置。
1.通讯方式的设定:PPO 4,这种方式为0 PKW/6 PZD,输入输出都为6个PZD,(只需要在STEP7里设置,变频器不需要设置);PROFIBUS的通讯频率在变频器里也不需要设置,PLC方面默认为1.5MB.在P60=7设置下,设置P53=3,允许CBP(PROFIBUS)操作.P918.1设置变频器的PROFIBUS地址.2.设置第一与第二个输入的PZD为PLC给变频器的控制字,其余四个输入PZD这里没有用到.设置第一与第二个输出的PZD为变频器给PLC的状态字,设置第三个为变频器反馈给PLC 的实际输出频率的百分比值,第四个为变频器反馈给PLC的实际输出电流的百分比值,其余两个输出PZD这里没有用到.3.PLC给变频器的第一个PZD存储在变频器里的K3001字里.K3001有16位,从高到底为3115到3100(不是3001.15到3001.00).变频器的参数P554为1时变频器启动为0时停止,P571控制正转,P572控制反转.如果把P554设置等于3100,那么K3001的位3100就控制变频器的启动与停止,P571设置等于3101则3101就控制正转,P572设置等于3102则3102就控制反转.(变频器默认P571与P572都为1时正转,都为0时为停止).经过这些设置后K3001就是PLC给变频器的第一个控制字.此时K3001的3100到3115共16位除了位3110控制用途都不是固定的,所以当设置P554设置等于3101时则3101可以控制启动与停止,P571等于3111时则3111控制正转,等等.K3001的位3110固定为“控制请求”,这位必须为1变频器才能接受PLC的控制讯号,所以变频器里没有用一个参数对应到这个位,必须保证PLC发过来第一个字的BIT 10为1.这里设置为:P554=3100,P571=3101,P572=3102,当PLC发送W#16#0403时(既0000,0100,0000,0011)变频器正转.4.PLC给变频器的第二个PZD存储在变频器里的K3002字里.变频器的参数P443存放给定值.如果把参数P443设置等于K3002,那么整个字K3002就是PLC给变频器的主给定控制字. PLC发送过来的第二个字的大小为0到16384(十进制),(对应变频器输出的0到100%),当为8192时,变频器输出频率为25Hz.5.变频器的输出给PLC的第一个PZD字是P734.1,第二个PZD字是P734.2,等等.要想把PLC接收的第一个PZD用作第一个状态字,需要在变频器里把P734.1=0032(既字K0032),要想把PLC接收的第二个PZD用作第二个状态字,需要在变频器里把P734.2=0033(既字K0032).(K0032的BIT 1为1时表示变频器准备好,BIT 2表示变频器运行中,等等.)(变频器里存贮状态的字为K0032,K0033等字,而变频器发送给PLC的PZD是P734.1,P734.2等)在变频器里把P734.3=0148,在变频器里把P734.4=0022,则第三个和第四个变频器PZD分别包含实际输出频率的百分比值和实际输出电流的百分比值6.程序:(建立DB100,调用SFC14,SFC15,6SE7的地址为512既W#16#200)A. 读出数据CALL "DPRD_DAT"LADDR :=W#16#200RET_VAL:=MW200RECORD :=P#DB100.DBX0.0 BYTE 12(读取12个BYTE)NOP 0B. 发送数据CALL "DPWR_DAT"LADDR :=W#16#200RECORD :=P#DB100.DBX12.0 BYTE 12(写入12个BYTE)RET_VAL:=MW210NOP 0C. L "DB100".DBW0T "MW20"NOP 0D. L "DB100".DBW2T "MW22"NOP 0则:DB100.DBX 13.0 控制启动与停止;DB100.DBX 13.1 控制正转;DB100.DBX 13.2 控制反转;M21.1 变频器READY;M21.3 变频器FAULT.西门子控制字和状态字都是32位,实际上用的位数不多,控制字用到的有合闸、急停、运行允许、故障复位、点动、PLC控制等,状态字用到的有开机准备、运行准备、运行信号、故障、报警等。
实现Profibus主从站之间的MS通讯通过图解,说明2个CPU之间通过Profibus实现主从站之间的MS通讯。
这个例子是结合某现场的实际情况来的,实际情况是在2套300系统之间进行数据通讯,由于每个CPU300都带有ET200M从站,所以317的主DP口和315的DP口都只能是主站而不能配置为从站。
并且2套系统之间距离较远,MPI不行,于是就利用了317的MPI/DP 口配置成DP口来和315通讯。
1.首先,在STEP 7中新建一个Project,分别插入2个S7-300站。
这里我们插入的一个CPU315-2DP,作为主站;一个CUP317-2作为从站,并且使用317-2的第一个端口MPI/DP 端口配置成DP口来实现和315-2DP的通讯。
然后分别对每个站进行硬件组态:首先对从站CPU317-2进行组态:将317的第一个端口MPI/DP端口组态为PROFIBUS类型,并且创建一个不同于CPU自带DP口的PROFIBUS网络,设定地址。
在操作模式页面中,将其设置为DP SLA VE模式,并且选择“Test,commissioning,routing”,是将此端口设置为可以通过PG/PC在这个端口上对CPU进行监控,以便于我们在通讯链路上进行程序监控。
下面的地址用默认值即可。
然后选择Configuration页面,创建数据交换映射区。
这里我们创建了2个映射区,图中的红色框选区域在创建时是灰色的,包括上面的图中的Partner部分创建时也是空的,在主站组态完毕并编译后,才会出现图中所示的状态。
由于我们这里只是演示程序,所以创建的交换区域较小。
组态从站之后,再组态主站。
插入CPU时,不需要创建新的PROFIBUS网络,选择从站建立的第二条(也就是准备用来进行通讯的MPI/DP端口创建的那条)PROFIBUS网络即可。
组态好其它硬件,确认CPU的DP口处于主站模式,从窗口右侧的硬件列表中的已组态的站点中选择CPU 31X,拖放到主站的PROFIBUS总线上,这时会弹出链接窗口,选择以组态的从站,点击Connect按钮,然后进入Configuration页面,可以看到前面在从站中设定的映射区域,逐条进行编辑(Edit…),确认主从站之间的对应关系。
(三)输出辊道正反转应用实验内容:通过S120的PROFIBUS-DP通讯,控制辊道的正反转,实现辊道的正反转和快慢速。
实验目的:掌握通过PROFIBUS-DP通讯实现正反转,快慢速的方法。
实验工具:S120变频器+BOP20+CU320-2DP。
1 控制要求:(1)通过“控制字”实现辊道的正反转;(2)通过DO端子实现运行、故障、准备好等显示;(3)通过“速度给定字”实现快慢速给定;(4)速度和电流通过PROFIBUS-DP通讯反馈给PLC。
(5)通过“控制字”实现远程故障复位。
2 负载特性:(1)朝两个方向转动;(2)启动时间/停车时间短;(3)停车方式采用减速停车方式;(4)正反转切换的时候,启动响应要快。
3 控制原理图(1)首先我们要知道下面几个要素:电机控制方式、电机的类型、电机的铭牌参数,负载的类型,电机优化的方法。
对于电机控制方式来说,不同的变频器是不一样的。
对于西门子变频器S120来说:A 变频器系统的拓扑结构:控制单元+功率模块控制单元采用CU320-2DP。
B 电机的控制方式:P1300C 电机的类型:P300D 电机的铭牌数据:P304 、P305、P307、P308、P310、P311E 负载的类型P500:通过STARTER软件,组态变频器、电机、编码器等,完成基本设置和电机优化。
Control structure:控制方式P1300: [0] U/f control with linear characteristicPower unit:Component name: Motor_Module_2Component type: AC-Power ModuleOrder no.: 6SL3210-1SE22-5UxxRated power: 11 kWRated current: 25 APower unit supplementary data:No filter/chokeAdapter module: CUA31Drive setting:Standard(P100=0): IEC motor (50Hz, SI units)Connection voltage(P210): 400 VPower unit application(P205): [0] Load duty cycle with high overload for vector drives (含重载的矢量驱动变频器)Motor:Motor name: Motor_6电机类型(P300): [1] Induction motor (rotating)Motor data:p304[0]: Rated motor voltage 380 Vrms(电机额定电压P304)p305[0]: Rated motor current 9*9.00 Arms(电机额定电流P305)p307[0]: Rated motor power 9*4.00kW(电机额定功率P307)p308[0]: Rated motor power factor 0.830(电机功率因数P308)p310[0]: Rated motor frequency 50.00 Hz(电机额定频率P310)p311[0]: Rated motor speed 1460.0 rpm(电机额定转速P311)p335[0]: Motor cooling type [0] Non-ventilatedCalculation of the Motor/Controller Data(P340):No calculationP340=?Motor holding brake:(P1215=0)Motor holding brake(P1215): Not available(在电机优化前,不要使用抱闸功能,若有,在电机优化完毕后,再加上。
80C2‥‥三、用I/O存取命令的数据通信SIMATIC S7系统的CPU通过用STEP7程序编写的专用的I/O存取命令来寻址分散外围设备模块的I/O数据。
这些命令直接调用I/O存取或通过过程映象调用I/O存取。
用于读和写分散I/O 信息的数据格式可以是字节、字或双字。
图1解释用不同数据格式与DP从站的I/O通信。
然而,有些DP从站模块有更复杂的数据结构。
它们的输入和输出数据区域有3个字节或大于4个字节的长度。
这些数据区域也称谓连续的I/O数据区域。
在使用连续的数据区域的DP从站的参数集中,参数“Consistency”必须设置为“All”。
对于连续的数据,输入和输出数据不能通过过程映象来传送,也不能用通常的I/O存取命令来调用数据交换。
原因在于对DP主站上的输入/输出数据的CPU更新循环。
DP输入/输出数据的更新只能由DP主站与DP 从站间的循环数据交换(总线循环)而确定(见图2)。
因此,从DP主站来的数据或到DP主站的数据可能已经在寻址的DP从站I/O数据的一条STEP7存取指令与下一条I/O存取指令之间被更改了。
由于这个缘故,仅对用户程序用字节、字或双字命令无任何中断地编址的I/O结构和区域才能保证数据的连续性。
必须控制复杂功能的DP从站,如闭环控制器或电气驱动等,它们通常不能用简单的数据结构来完成这些任务。
这些DP从站需要更大的输入和输出区域,而且在这些I/O区域中的信息常常是相连不可分割的。
因此,它们不能用字节、字和双字的结构来存贮。
这样的数据区域称之为“连续的”。
在一个输入/输出模块内,用组态报文可以指定长度可达64字节或字(128字节)的数据区域。
为了对这些相关的模块读或写信息,必须使用DP从站的连续的输入/输出数据区域和特殊的功能。
在SIMATI S7中,系统功能SFC14 DPRD_DAT和SFC15 DPWR_DAT是为此目的保留的。
图3指出系统功能SFC14和SFC15的工作原理。
SFC的参数LADDR是一个指针,它指向要读出的输入数据区域或指向要写入的输出数据区域。
在SFC参数中,所指定的DP从站的输入或输出模块的起始地址必须与早先用HW Config程序组态时规定的地址相同,而且这些地址用十六进制数表示。
四、用SFC14 DPRD_DAT和SFC15 DPWR_DAT交换连续的数据下面的实例项目解释SFC14和SFC15的使用。
实例中所使用的硬件与前面教程十的描述相同(S7-300/CPU315-2 DP作为I-从站),但此项目限于一个S7 DP主站(S7-400)和一个I-从站(S7-300)。
因此,必须去掉在前面实例中已组态的ET200B和ET200M节点。
用合适的PROFIBUS电缆将S7-300的DP接口与S7-400控制器彼此连接,并接通设备的电源。
此项目基于假定两个可编程控制器均已复位,即它们的工作内存、装载内存和系统内存均被完全清零。
两个PLC都处在RUN状态(开关位置RUN-P)。
I- 从站的两个连续的输入/输出数据区域每个都有10字节长,且参数“Consistency”设置为“All”。
这就是说,在I-从站上和DP主站的输入/输出数据通信必须使用系统功能SFC14和SFC15。
用于I-从站(带CPU315-2 DP的S7-300)的用户程序本实例项目中的I-从站具有大于4字节的连续的输入/输出区域。
因此,正如使用S7 DP主站一样,必须使用系统功能SFC14和SFC15来传送I/O数据。
切记,由DP主站用SFC15发送的输出数据被I-从站用SFC14来读出并作为其输入数据,反之也适用于从I-从站来的作为DP主站的输入数据。
图4对此作了解释。
SIMATIC S7-300控制器的CPU不识别编址错误。
因此,对于CPU315-2 DP,可以将用SFC发送的I/O数据放在另外的未被占用的过程映象区域中,例如可以用IB100~IB109和QB100~QB109。
因此在用户程序中,就可以用简单的位、字节、字和双字指令来编址这个数据。
现在,让我们来生成用于I-从站所需的用户程序。
在SIMATIC Manager中,打开项目S7-PROFIBUS-DP,双击文件夹SIMATIC 300,再通过文件夹CPU315-2DP和S7-Program进入Blocks文件夹(图5)。
双击Blocks文件打开它,由HW Config生成的组织块OB1和系统数据块(SDBs)已经设置在此文件夹中。
注意,必须节省并符合HW Config中配置的硬件,否则HW Config不能生成系统数据,此时将看到无系统数据文件夹。
·双击OB1打开它,自动打开STEP7程序LAD/STL/FBD。
用STL视图为OB1编程。
·在程序编辑器中,键入命令“CALL SFC14”,并用RETURN键确认。
SF14 DPRD_DAT显示出输入和输出参数。
如图6所示定义这些输入和输出参数。
输入装载和发送指令,然后调用SFC15,再为此系统功能定义输入和输出参数。
当这两个SFC被调用时,用于这些标准功能的相关块的外形就自动地从STEP7标准库(…\SIE-MENS\STEP7\S7Libs\STDLIB30)中拷贝给命名为Blocks的文件夹。
图5 带有打开的Blocks文件夹的SIMATIC Manager图6 带OB1(用于CPU315-2 DP的实例程序)的STEP7中的STL程序编辑器·为了能容易地监视DP主站上的数据通信,用适当的装载和传送指令(见图6)将所接收的第1个数据字节(IB100)转送到要被发送的第1个数据字节(QB100)。
此后,将拷贝来自I-从站输入数据区域的由DP主站发送的第1个数据字节立刻返回到I-从站的输出数据区域,然后返回DP主站。
·用Save保留OB1,并关闭用于OB1的程序编辑器(在本例中,即STL编辑器)。
在Windows95/NT的工具条中,转换到SIMATIC Manager。
现在,这Blocks文件夹应包含块对象System data、OB1、SFC14和SFC15。
当DP主站改变它的运行模式或崩溃时,操作系统通过调用I-从站上的某个OB作出反应。
如果在I-从站上这些OB丢失,则CPU立即自动地切换到STOP。
因此,下一步是在I-从站上建立相关的出错OB,以防止CPU在此情况下进入STOP。
·当DP主站的CPU从RUN转换到STOP时,在I-从站上的组织块OB82(诊断中断)被调用。
为了避免因不存在诊断和出错OB而使DP主站CPU进入STOP,应在DP主站CPU上建立OB82和OB86。
使用数据块DB10和DB20作为I-从站的输入/输出数据的数据区域。
要保证有足够的空间用于这些DB。
·选择Blocks文件夹,打开块捷菜单并使用INSERT NEW OBJECT→DATA BLOCK,插入一个新的数据块。
在“Properties_Data Block”对话框中的“Name”字段登入DB10,用OK退出此对话框。
·双击Blocks文件夹中的DB10,在“New Data Block”对话框中,选择Create组中的“Data Block”,用OK确认。
这就打开了DB编辑器,用10字节(字节0到9)的长度登入BYTE-ARRAY(ARRAY=相同数据类型元素的集合)(见图8)。
保存DB10。
用相同的方法建立DB20,但此次在Name列中键入“Outputdata”。
保存DB20,关闭用于DB10和DB20的编辑屏幕。
·使用任务条返回到SIMATIC Manager中的Blocks文件夹。
现在,选择DOWNLOAD命令拷贝Blocks文件夹中的所有块到CPU416-2DP中。
在PG编程装置或PC与CPU416-2DP之间务必用MPI电缆连接,CPU的运行模式开关处在STOP状态。
·下载以后,设置CPU的运行模式开关为RUN-P。
现在CPU 416-2DP必须处在RUN模式。
这里有关DP的出错LED(“SF DP”LED或“BUSF”LED)必须没有被点亮或闪烁。
如果这些LED处于关闭状态,则DP主站与I-从站间的DP数据通信将无任何出错地执行。
五、测试DP主站和I-从站间的数据交换为了测试输入/输出数据的交换,对此项目我们选择在线查看。
在SIMATIC Manager中,选择View→ONLINE。
确保在PG/PC编程装置与CPU416-2DP之间正确地用MPI电缆连接。
打开SIMATIC 400(1)文件夹,右击CPU416-2DP打开快捷菜单。
选择PLC→MONITOR/MODIFY V ARIABLES。
现在,可以更改这些变量以监视系统的响应。
如图9所示登入两个变量DB20. DBB0(I-从站的第1个输出数据字节)和DB10. DBB0(I-从站的第1个输入数据字节)。
登入修正值,例如对第1个输出数据字节为“B#16#11”。
现在,在菜单条中选择V ARIABLE→MONITOR或从工具条中选择MONITOR按钮来监视这些变量,两个监视值指示“B#16#00”。
现在,在菜单条中,选择V ARIABLE→ACTIV ATE MODIFY V ALUES为I-从站的第1个输出数据字节激活手动登入值。
可以看到两个变量的监视值立即转变为设定值。
其原因是I-从站从DP主站接收到的数据立即由用户程返回给DP主站。