小弟接触PLC不久,对模拟量模块的使用不是非常熟悉。
现有以下疑问,现碰到一很简单的课题,因为不熟悉所以无从下手。
其中有一条就是PLC与变频器进行PROFIBUS通讯,将采集到的变频器转速通过PLC的模拟量模块输出点显示在一个终端仪表上。
请问我该采用怎样的硬件搭配和软件手段呢?
或者各位专家给我点启发,自己研究可以,现在真的是概念不清啊,谢谢。
最佳答案
首先一条:你的变频器上必须有Profibus-DP通讯卡,通过S7-300(再次讨论的问题基本都是西门子的PLC)CPU上的DP接口,将变频器连接起来,终端电阻设置好(需要一对DP接头,一端连接CPU上的DP口,一段连接变频器上的DP接口)。然后设置变频器上的相关通讯参数(通讯格式、站点号等),在Step7的硬件组态中将该变频器的GSD安装好,拖到硬件组态的DP网上。硬件组态种对应设置好通讯方式(就是PPO类型)。
其次就是利用类似PIW方式将变频器的速度信号读过来,然后利用FC106功能块,通过PQW相关通道送出来4-20mA标准信号,将该信号接到你的数显表中,在数显表中设置对应好速度量程即可。
以下是个S7300与变频器通讯的例子说明:
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#200
RET_VAL:=MW200
RECORD :=P#DB100.DBX0.0 BYTE 12(读取12个BYTE)
NOP 0
B. 发送数据
CALL "DPWR_DAT"
LADDR :=W#16#200
RECORD :=P#DB100.DBX12.0 BYTE 12(写入12个BYTE)
RET_VAL:=MW210
NOP 0
C. L "DB100".DBW0
T "MW20"
NOP 0
D. L "DB100".DBW2
T "MW22"
NOP 0
则:DB100.DBX 13.0 控制启动与停止;
DB100.DBX 13.1 控制正转;
DB100.DBX 13.2 控制反转;
M21.1 变频器READY;
M21.3 变频器FAULT.
西门子控制字和状态字都是32位,实际上用的位数不多,控制字用到的有合闸、急停、运行允许、故障复位、点动、PLC控制等,状态字用到的有开机准备、运行准备、运行信号、故障、报警等。这是比较简单的控制,如果要在线参数变更就比较复杂了。
最简单的学习方法就是看看PLC和变频器的接口配置,运行中用那些位有用,停止时那些位有用,启动和停止过程中那些位在变化,相信这样去学会比看大全理解的要快PLC与变频用DP通讯
硬件组态
1. 将MASTERDRIVES CBPCBP2 加入组态
2. Profibus 地址
1. 将MICROMASTER 4 加入组态
2. Profibus 地址
Top
选择数据格式
1. MASTERDRIVE中可供选择的PP0类型
2. IQ address
1. MICROMASTER 4 中可供选择的数据格式
2. IQ address
Top
Step 7 中的编程
创建数据块DB1
说明
1.在Step7 中对PKW (参数区)读写参数时调用SFC14和 SFC15
2. SFC14(“DPRD_DAT”)用于读Profibus 从站的数据
3. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站
4. W#16#100(即256)是硬件组态时PKW的起始地址
Top
程序举例1
1. 读参数r015
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 .将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
更多内容下载请登陆:http://www.plc2008.com 电邮件:plc808@163.COM
程序举例2 (读参数数组的数值)
2. 读参数P401.2
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
程序举例3 (读须置位参数页的参数)
3. 读参数U001.2
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
程序举例4(写参数)
4. 写参数P401.1 (将W#16#1000 写入P401.1中)
1.将W#16# 8191 写入DB1.DBW28 (PWE)
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
对PZD (过程数据)的读写
说明
1. 在Step7 中对PZD (过程数据)读写参数时调用SFC14和SFC15
2. SFC14(“DPRD_DAT”)用于读Profibus 从站的数据
3. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站
4. W#16#108(即264)是硬件组态时PZD的起始地址
5. 对特殊结构的PZD 可用PQW , PIW 进行读写
Top
程序举例5 对PPO5 中10PZD的读写
DB1中与PZD相对应的数据字
1.在P918 中设置Profibus 地址,必须与Step 7 中设置相同.地址不能重复.
2. 控制字第十位置“1”. PZD1 = W#16#X4XX
提问者对于答案的评价:
谢谢,尝试一下。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc310584.html