矩形PLC问题集锦 点击:1037 | 回复:11



秦君_1

    
  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-16 15:27:49
楼主

问题1:在线程序与PLC中程序不一致时也会执行在线监控功能,软件不自动判断程序一致性?

这样会造成监控失去意义。例如如下程序运行正常,PLC00001有输出,PLC输出指示灯亮。

 

点击“PLC离线”后无意间修改了程序,将输出线圈00001改为00002

此时点击“PLC连线”,输入密码,就会出现如下界面:

这个监控界面容易给人造成错觉,粗看界面显示,0002有输出?细看之下00002=OFF,没有输出。

个人觉得做不到软件自动判断程序一致性,还不如在这种情况下就压根不要执行“PLC连线”功能要好,执行了会误导人。

问题2FLASH掉电保持寄存器初始值怎样设定?系统默认不是0

如图程序下载进PLC连线监控

发现48080(软件中说明48080FLASH掉电保持寄存器)初始值为65535,用户能设置这类寄存器的初始值为0吗?(因为我的逻辑意图是:PLC上电首次扫描,将寄存器48080的值与常数0比较,相等的话就MOV一个常数1048080

问题3:功能块指令能连着写吗?

为了解决48080初始值不为0的问题,我在问题2中的逻辑前面加了一个清零逻辑,结果出现下面的怪现象:

48080确实清零了,没错。但是紧接着第三行比较指令,48080与常数0比较结果相等,应该是中节点有输出,继续执行下一个MOV指令,将常数10传送给48080,最终结果48080的值应该是10,而不是0啊!

到底哪里出了错?

 

 



楼主最近还看过



阿水--王者之师

  • 精华:24帖
  • 求助:348帖
  • 帖子:1616帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2013-04-16 16:21:20
1楼

  我还正在测试 FLASH 掉电存储功能,将 N80 放在家里使用

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-04-16 16:54:04
2楼

向前辈们学习                 

矩形科技

  • 精华:1帖
  • 求助:0帖
  • 帖子:22帖 | 276回
  • 年度积分:0
  • 历史总积分:1221
  • 注册:2008年1月18日
发表于:2013-04-17 09:14:46
3楼

1:连线功能只确保密码正确,就可与PLC建立通讯连接,这个时候可以做变量监控与设置。

如果程序不一致,当你在线修改程序的时候,就会提示出错。

2:FLASH保存区域的数值默认为FFFFH(65535),这个是为了做显意的区分,这个我们会考虑在后面将其数值初始化默认为0

3:感谢秦工的测试,这个问题牵涉都PLC的扫描方式的问题。希望各位看官通过通过秦工的这个帖子能有所了解。我们的PLC采用的是垂直扫描的方式(模拟量实际的电路执行方式,并联执行,有别于其他家的横向扫描)。在同一个网络,最左边的一列最先执行,同一列是从上到下。如图的程序,扫描顺序如下:

1列 扫描09925的状态

-》2列第一行扫描10004的常闭点--》2列第二行的横线短接线--》2列第4行RCMP指令,因此时48080为FFFFH,则比较指令的上节点应该输出

--》3列第一行,横向短接线扫描--》第二行 MOVE ,#0,48080--》3列5行,横线短接线。.....

因此,在第2列48080的数值为FFFF,所以比较指令的上节点输出,不是中节点,在第三列,将48080的数值赋值为0,。如果要实现你的功能,需要将MOVE,#0,48080往左边一列移动一下即可。如下图:

另外注意,横向短路的实线是需要占用一个扫描时间的,虚线则不占用扫描时间。

 

 

 

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-17 09:54:12
4楼

回复内容:

对: 矩形科技  1:连线功能只确保密码正确,就可与PLC建立通讯连接,... 内容的回复!


 谢谢!看来不能拿常理来苦思冥想了。打破了我原来三天搞定的想法。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-19 08:41:45
5楼

问题3:一个网络中是不是有行的限制,如图:想在网络1中继续插入多行,不论在何处点击右键“插入”,均会提示“插入会删除最后一行”的字样。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-19 08:54:18
6楼

问题4:1变量(输入量)不能直接使用上升、下降沿?必须经过输出(0变量)脉冲沿转换?   

 

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-19 09:22:53
7楼

问题5:软件里面提示:对于N80M16DR,有2K个保持型寄存器:40001-42000,42个电池掉电型:44096-44137,920个FLASH掉电保持:48080-48999.

电池掉电型可以理解成靠电池保持,有42个,电池没电,就会丢失数据;FLASH掉电保持是永久保持,有920个;那么2K个保持型怎么理解?

 

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-04-23 08:42:26
8楼

问题6:图示逻辑

要求输出量00001和00002互锁,一般普遍意义上,扫描周期最后才更新输出,上述逻辑,假设00002(关)有输出,某一扫描周期图示逻辑段前面有00001(开)输出条件,上面图示逻辑第一个网络中00001(开)并不会马上更新输出,必须等到扫描结束。于是这一扫描周期结束时就会出现00001(开)和00002(关)同时输出的情况,必须等到下一周期扫描结束才能互锁。为了解决这个问题,一般输出互锁前面逻辑条件用的是中间量M,M寄存器在扫描周期过程中是实时刷新的,00001(开)条件用M输出量表示,同时用M输出量R(复位)00002(关)就不会出现上述问题。

在咱们矩形的软件中使用S或者R命令,提供的变量均为0变量,0变量也就是输出变量,是不是同样也符合扫描结束才更新的理论?这样的话,上面的逻辑互锁咋样解决?

 

hwping521

  • 精华:0帖
  • 求助:2帖
  • 帖子:5帖 | 76回
  • 年度积分:0
  • 历史总积分:231
  • 注册:2013年3月04日
发表于:2013-04-23 09:50:33
9楼

问题有点深奥,不太理解其中的内涵!

萝卜糕

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2013-04-23 10:23:47
10楼

问题3:功能块指令能连着写吗?

为了解决48080初始值不为0的问题,我在问题2中的逻辑前面加了一个清零逻辑,结果出现下面的怪现象:

这个问题是因为你前面用的是09925,而09925只有在上电时才会输出一个周期的ON脉冲,你把程序下载到控制器,重上电再看看,我试过是正确的,但这种方式的程序确实有些容易产生歧义,最好能更严谨一些

矩形科技

  • 精华:1帖
  • 求助:0帖
  • 帖子:22帖 | 276回
  • 年度积分:0
  • 历史总积分:1221
  • 注册:2008年1月18日
发表于:2013-05-09 23:57:48
11楼

问题6有点绕

确认结果问题看对你是否能帮你解决疑惑。

1:PLC都是在扫描结束的时候刷新IO,就是输出DO,更新DI点,然后再一次执行梯形图程序

2:在次期间,变量的变化以最后的逻辑执行为准,例如,前面有条件让某变量(辅助触点)SET,在后面被复位,则程序到最后,他是为OFF的,在SET与RESET的程序之间,他的状态为ON。这个也就是为什么普通线圈不能多驱动的原因

 


热门招聘
相关主题

官方公众号

智造工程师