关于CP1H-XA的问题请教下 点击:1961 | 回复:10



纵横军团-民有所居

    
  • 精华:0帖
  • 求助:16帖
  • 帖子:25帖 | 507回
  • 年度积分:0
  • 历史总积分:3372
  • 注册:2011年3月06日
发表于:2012-08-29 21:21:32
楼主
求助帖20分-已结帖


1. CP1H是否可以使用带参数调用的功能块
   在编译后出现 错误: 这个单元版本的PLC不支持STRING类型或输入输出变量。请在程序中检查PLC的单元版本。
   将输入输出变量改为内部变量后,错误消失。如果我需要输入输出变量怎么办? 因为是重复调用,并且程序中有微分指令等情况,没有输入输出变量是否能工作正常? 我很担心内部变量和西门子的FC的TEMP变量一样,调用后就清除。

 

2. +L  +CL +BCL 等有什么区别?比如+CL 为带进位有符号双二进制加。这里的二进制是不是要求操作数必须为DWORD类型,还是DINT类型数据也可以的?  带进位是什么意思?是不是6+8如果不带进位的话会变成4?

谢谢!




miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-08-30 09:58:30
1楼

1. 这个单元版本的PLC不支持STRING类型或输入输出变量?

  答: 这个PLC 型号不支持 “输入输出变量” , 请删除你 的FB 块中的 “输入/输出变量”变量即可;

         如果想用到 “输入/输出变量”,你可以新建一个 IN_PUT型变量bReg,OUTPUT型bReg2变量,然后再程序中

         写这样一句代码: bReg2:=bReg; 这样 在调用 FB 块实例的时候,

           给 bReg,bReg2 填写同一个寄存器地址即可实现,“输入/输出变量” 同样的功能。

2.我很担心内部变量和西门子的FC的TEMP变量一样,调用后就清除?

         答:  CP1H 的FB块 类似于 西门子的 FB 块,内部变量是静态的 不是临时变量,也不会调用后清除。

                 FB 块的每一个调用实例系统会自动分配一些 DM 存储区,还可以手动给他们分配DM区绝对地址;

3.  +L  +CL +BCL 等有什么区别?

     答:  +L 是不带进位加法, WORD 类型;只要结果 值在 0~65535 范围内,结果和 +CL 结果一样;

             +CL 是带进位加法,  WORD 类型;当结果值大于65536 ,进位后 赋值给连续地址的下一个地址的地位。

             具体看指令帮助。

 

 

    

纵横军团-民有所居

  • 精华:0帖
  • 求助:16帖
  • 帖子:25帖 | 507回
  • 年度积分:0
  • 历史总积分:3372
  • 注册:2011年3月06日
发表于:2012-08-30 19:50:24
2楼

谢谢楼上!

我的想法也是这样的,我用了输入变量和输出变量来处理。不过后来还是用的内部变量处理好了。

欧姆龙的算术运算让我头疼。如 我是想把 0  赋值 给 D520  用语句 MOV 0  D520,结果却变成了 51 。后来瞎碰,将0改为&0 才没有问题。如下图所示。

 

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2012-08-30 21:47:04
3楼

把 0  赋值 给 D520  用语句 MOV 0  D520,结果却变成了 51

#0 d520

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2012-08-30 21:48:14
4楼
&0,代表10进制数

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2012-08-30 21:50:03
5楼

带进位是什么意思?是不是6+8如果不带进位的话会变成4

代进位是指两数相加超过#FFFF,则产生进位标志

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2012-08-30 21:55:18
6楼

如果你做不代输入输出的功能块,应该是可以的,但是没有这样做过。

可以这样操作,在符号表里面定义变量,然后在功能块里EXTERNAL里面引用,没有这样试过,楼主可以试试看

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-08-31 09:20:13
7楼

引用 newchp 的回复内容:&0,代表10进制数



楼主,你要用OMRON PLC  就要熟悉他的寻址 方式, MOV 0 D520 ,这个指令的意思是 0 通道(WORD类型)的值 传送到 D520 , 这里的0  是地址,不是常数,&0或#0 是常数,这个寻址方式,尤其是处理模拟量通道的时候要特别 注意;

CIO  公共I/O  区, 这个公共I/O区,地址从 0 开始, 0 默认指的是WORD 类型,0.0~0.11 指的是 外部X0.0~X0.11的输入通道 印象区; 100.0~100.11 是Y0.0 ,Y0.11 数字量输出通道  线圈地址。


 

bhdxzgp

  • 精华:5帖
  • 求助:8帖
  • 帖子:141帖 | 5451回
  • 年度积分:0
  • 历史总积分:21609
  • 注册:2006年4月16日
发表于:2012-08-31 11:33:31
8楼

日本的东西;最好大家以后不要用了啊;!

不想回答!!!

真的很难过啊!!!

纵横军团-民有所居

  • 精华:0帖
  • 求助:16帖
  • 帖子:25帖 | 507回
  • 年度积分:0
  • 历史总积分:3372
  • 注册:2011年3月06日
发表于:2012-08-31 20:28:54
9楼
引用 bhdxzgp 的回复内容:日本的东西;最好大家以后不要用了啊;!不想回答!!!真的很难过啊!!!



你先去让冠猿不要用日本车吧。

本人个人用品一直抵制日货,但工作上客户指定是无法避免的。

 

 

乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2019-01-30 14:38:21
10楼

这个,欧姆龙PLC直接输入“0”表示为0CH,也就是输入0.0~0.F,

&0、#0才是常数,分别是十进制和16进制


热门招聘
相关主题

官方公众号

智造工程师