您好!欢迎光临工博士商城

西门子工业电器服务商

产品:4950    
联系我们
您当前的位置:首页 » 新闻中心 » 西门子PLC编程时,对DP通信的变频器控制字1采用数组类型
产品分类
新闻中心
西门子PLC编程时,对DP通信的变频器控制字1采用数组类型
发布时间:2021-09-13        浏览次数:444        返回列表
西门子PLC编程时,对DP通信的变频器控制字1采用数组类型
西门子PLC编程时,对DP通信的变频器控制字1采用数组类型,0-15位,分别控制,而不直接使用047E 047F,这样的话,怎样把数组变量转换为INT?
用的是TIA V13 SP1 ,PLC是1215C V4.1,一个项目会有很多的变频器,而其中几个变频器还用的自由报文,改过默认控制字,所以必须做成块FC,(常用的047E 047F不方便,换算麻烦),
像USS通信的块一样,OFF1 OFF2 OFF3 FACK 反转 禁止负频率等,都做个一个FC里面,里面全是形参,需要时调用就行,填写对应的实参。
但是AT覆盖,好像要求是不能覆盖已在接口中声明为参数的 PLC 结构化的变量,应该是FC FB吧,所以AT覆盖实现不了
像这种情况,AT 覆盖变量,用户程序要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。 
这样,可以选择对不同数据类型的已声明变量进行寻址。例如,可以使用 BOOL 的 ARRAY 对 WORD 数据类型变量的各个位寻址。

要覆盖变量,直接在待覆盖的变量后声明附加变量,并用关键字“AT”加以标识
对于变量覆盖可适用以下通用规则:
· 在 STL、LAD、FBD 和 GRAPH 中,S7-1200 和 S7-1500 允许变量覆盖。
·  SCL 支持在所有 CPU 系列中覆盖。
· 可以在以下块中覆盖变量:
·  在标准访问的代码块中
·  在可优化访问具有保留设置“在 IDB 中设置”的变量的代码块中
·  覆盖变量数据宽度必须小于等于被覆盖变量的数据宽度。
·  不可以覆盖 VARIANT 和 INSTANCE 数据类型的变量。
· 无法覆盖库中声明为接口中参数的块。
· 无法覆盖接口中声明为参数的结构化 PLC 变量
西门子S7-1200/1500: 在 FC 中使用 AT
对于 西门子S7-1200/1500 中的 FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无法通过程序实现,则可通过 .X、.B、.W 或 .D 语法对现有
变量中的区域进行寻址。
在1200/1500中,你可以定义个变量,不管是BYTE,INT,WORD。对于这个变量可以分别对单独的某一位进行赋值,也可以将这个变量的某一位直接作为
BOOL变量使用直接定义一个word的地址,比如db1.dbw0,在程序中,直接通过db1.dbx0.0-db1.dbx1.7位操作
然后在往变频器中发送的时候,或者mov db1.dbw0,pqw256这样,或者通过SFC15(还是13来的)p#db1.dbx0.0 byte x
(x是你通讯设置的控制字和速度之类的所有地址加起来)打包直接发过去就好,不用纠结什么int格式,这个字不管是如果是word,还是int,发过去之后,
变频器***后还是要把控制字之类的分解成位的,速度之类的给定也一样,你以整数的形式move过去,地址格式是float来着,发过去也是整数的数值。



 

联系热线:18271966141   联系人:王乐 联系地址:北京市朝阳区霄云里8号楼1单元13层1601室551

技术和报价服务:星期一至星期六8:00-22:00 西门子工业电器服务商