请教关于西门子300plc和6ra70通过DP通讯的问题

plc给6ra70的控制字1发送8C7E停止,发送8C7F运行。8C7E是个16位2进制数,不是正好对应控制字1的bit15到bit0吗?
可是plc程序里的注释的含义是:8 代表写请求(有数据分组,双字)  C7E是控制字1的状态。这个注释我看不懂啊。为什么要把8从控制字里单独拿出来呢?
还有,故障复位发送8CFE给控制字1,区别是bit7为1了。bit7是1 edge Acknowledge,不是故障复位啊?

还有,PKW是四个字,4PKW/10PZD;要给P078的第一组参数i001发送进线电压等级,第一个字应该是78,第二个字是0,第三、四个字是给定电压值500V才对,但实际上程序里第一个字是16#604E,第二个字是16#100,第三个字是16#0、四个字是给定电压值500V。这里78转换成16进制后是4E,前面的60是哪儿来的,第二个index是第0组,为什么是16#100呢?

最佳答案

位的排列是错的,控制字假如是字db1.dbw0这个字就包括包括db1.dbb0和db1.dbb1两个字节,位的排列顺序为db1.dbx0.7----0.0  db1.dbx1.7----1.0共15位
            15位------------8位     7位------0位

对PKW区数据的访问是同步通讯,即发一条信息,得到返回值后才能发第二条信息。

PKW一般为4个字,定义如下:
 
PKE:参数表示符     IND:索引     PWE:参数值

PKE的bit15-bit12位为A:常用值:1、2、3、6、7、8
   其中:1:读请求(无数据分组)        6:读请求(有数据分组)
         2:写请求(无数据分组、单字)  7:写请求(有数据分组、单字)
         3:写请求(无数据分组、双字)  8:写请求(有数据分组、双字)

PKE的bit11-bit0位为PNU:参数号:
      当读写0002~1999的参数时,直接将数值转换为十六进制即可;
      当读写2000~3999的参数时,将数值减去2000再转换为十六进制

 IND的bit15-bit12位为0,
bit11-bit8为B:数据分组编号,常用值:0、1、2
bit7-bit4为C:参数选择位,常用值:0、8
当读写0002~1999的参数时,该位为:0
当读写2000~3999的参数时,该位为:8

604E的含义为:  6 读请求(有数据分组) 04E  参数P078十六进制的表示
16#100指数据编号为1,P078.001

具体详细知识可参考:
http://www.docin.com/p-675764181.html
http://www.docin.com/p-925425774.html
http://www.ad.siemens.com.cn/Service/answer/solution.aspx?Q_ID=56994&cid=1038
http://www.docin.com/p-67576418

提问者对于答案的评价:
谢谢。

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc222959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年1月1日 下午9:55
下一篇 2018年1月1日 下午9:56

相关推荐