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