欢迎来到天天文库
浏览记录
ID:21478705
大小:25.00 KB
页数:4页
时间:2018-10-22
《请教pwe参数字问题》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、请教PWE参数字问题请教PWE参数字问题 在西门子DP-MM440通讯例程中有:例1修改单字参数P02010(1)为6,PWE1=DB1.BDW28=0000,PWE2=DB1.DBW30=0006。例2修改双字参数P2200(1)为1,PWE1=DB1.DBW28=0001,PWE2=DB1.DBW30=0000.请问:例1的参数值在DB1.DBW30,为何例2的参数值在DB1.DBW28?如何判断P参数是单字或是双字? 问题补充: 补充: 1.本问题例子是选择PPO1,4PKW/2PZD; 2.请解答例1参数值6放在PWE2,
2、例2参数值1为何放在PWE1? 3.写参数P*x之前,如何判断是单字或双字参数? 4.请就本例解答问题,不要介绍其他参考资料。 最佳答案 因为例1中参数值即(PWE=PWE1+PWE2)为00000006为单字。而例2中参数值为00010000为双字。P参数是双字还是单字取决于该参数的值是单字长,还是双字长。 如果你是读P参数就不需要知道它是单字还是双字,系统自动会读取该P参数的数值并计算返回的数值是单字还是双字(返回的第个位为1表示单字长,为2并表示双字长)。 实例: 1.如读P0700,
3、PNU为700=2BC(HEX) PLCPKW输出=12BC0000000000000000其中第一个参数1表示读请求。 PLCPKW输入=12BC00000000000000006其中第一个参数1表示返回为单字长,值为0006 如果你是写P参数就需要确定它是单字还是双字,再用相应的字符进行写操作。 实例: 2.写P1082,PNU为1082=43A(HEX) PLCPKW输出=343A000041F00000其中第一个参数3表示写双字请求;41F00000(HEX)=30.0(REAL) PLCPKW输入=243A000041F
4、00000其中第一个参数2表示返回为双字长。 (注:如果你写入的数据为00000010的话,则返回第一个参数应为1,表示单字长) 关于PKW定义和参数定义可参考: 1.怎样用PKW(参数区)方式读写参数: http://www2.ad.siemens.com.cn/download/Upload/LD/faq/518.zip 根据你提问做补充回答: 1.PPO1,4PKW/2PZD: PKW数据区为PIW256-PIW263,PQW256-PQW263; PZD数据区为PIW264-PIW267,PQW264-PQW267;
5、 2.总是以双字(32位)来传送参数值(PWE)。在PPO报文中,仅一个参数值能被传送。由PWE1(高位有效字)和PWE2(低位有效字)组成一个32位参数值。用PWE2传送一个16位参数值,这种情况下,必须在PROFIBUS-DP主站中,设定PWE1位0000(例1参数值6放在PWE2就是这种情况)。 3.写参数P*x之前,如何判断是单字或双字参数.这就要看你写的参数值PWE是否超过16位。如42480000(HEX)=50.0(REAL),41F00000(HEX)=30.0(REAL)。 4.当写P2010参数时将PNU(即参数号20
6、10)减去2000为10再转换为十六进制A。 至于P2010=200A的含义就是20-代表写请求(无数据分组、单字);0A-就是上述2010-2000=0A,即所修改的参数号(PNU)。200A就组成PKW定义中PKE(即参数表示符)。0180即表示PKW定义中IND(即索引或参数下标),其中1表示数据分组编号,8表示该参数在2000-3999范围内。后面跟着就是PWE(即参数值),包括PWE1和PWE2.故由PKE、IND和PWE组成PKW定义。00000006即是要写入P2010的参数值(即PWE)。(注:该PKW的定义在你所述文档中第4
7、页里面讲得很清楚)
此文档下载收益归作者所有