首页 上一页 1 2 下一页 尾页

回复 <王林海 >网友关于PLSY指令的问题 点击:2143 | 回复:29



wanggq

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 06:40:24
楼主

 

  引用<王林海>的内容:              (图片摘自《手把手教您写“让PLC唱歌”的程序》第4页)

  王林海网友在《手把手教您写让PLC“唱歌”的程序》一帖下跟帖提问,由于网页上不能清楚的显示网友们的图片内容,使大家交流起来很不方便!而且,《手把手教您写让PLC“唱歌”的程序》这个主题下,我的回复帖子数量已经很多了。这个《工控论坛》提供的帖子编辑功能在你自己回帖数量较多时就不好“编辑”了!需要耗费的时间太多!我不想浪费时间,所以新开一个主题来回复<王林海>网友的问题。请<王林海>网友把“问题”贴到这里来。



wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 06:58:19
1楼

 

   我在百忙中抽了些时间把王林海网友的相关图片进行了整理,发现王林海网友的FX1s型的PLC,在PLSY指令上出问题的原因是他自己把程序写错了!

 

  下面是王林海网友出错的程序:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 07:13:54
2楼

 

  先说他的第1个“错误”:

 

  用 T63 的常开接点来作 T63 线圈的“驱动”是不可能让 T63  进行计时的。因为 T63 在还没有进行计时,更不可能有“计时时间到”,其输出触点怎么会接通得了呢?!接点不闭合,驱动条件怎么会有效呢!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 07:28:50
3楼

 

  王林海网友的上1个“错误”导致了这第2个“错误”:

 

  T63 不能工作,也就不可能驱动“INC指令”!所以,“寻址寄存器V0”的值就不可能“加1”,从而使 V0 的值一直保持在“由程序开头的给V0 清零”时的数值“0”!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 07:54:06
4楼

 

  第2个“错误”的结果最终导致了“PLSY指令”的“源操作数1”的数值违背了该指令的“规矩”:

 

 

  “PLSY指令”的“源操作数1”的取值范围是:

 

  16位运算时,S1 的取值为:K 1 ~ K 32767  ;

 

  32位运算时,S1 的取值为:K 1 ~ K 100000 ;


  而王林海网友的“ D127V0 ”中的数值却一直是“0”! 因为在FX1s中的“D127”是一个“非保持型”的数据寄存器,当PLC在STOP状态或停电时,“D127”的数值就恢复成“0”,所以当PLC从STOP进入RUN时,这个数据寄存器的数值就一定是“0”!而V0的数值也一直是“0”,故“D127VO”的数值就是“D127”中的数值“0”,这样当然就不可能运行“PLSY指令”了!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 09:16:16
5楼

 

  本人曾经在《手把手教您写“让PLC唱歌”的程序》主题帖下回复刘存刚网友时,给他写过一个演奏《生日快乐》的程序。我把它写得非常简单,其目的就是让初学的网友们很容易照此范例去实践并在实践中获得成功!

 

  下面是我在回复中写的例程(运行监视图片):

 

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 09:24:01
6楼

 

  我把我写的程序跟<王林海>网友的程序放在一块儿,好让王林海网友自己认真仔细的对照检查:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 09:28:30
7楼

 

  如果有网友想动手实践一下“写个程序让PLC‘唱歌’”,请别忘了写“数据块”!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 09:43:27
8楼

 

  可能会有网友反驳我:在你的数据块里,“D128”、“D130”、“D137”、“D144”、“D152”这5个数据寄存器的数值不也是写成“0”吗?!

 

  是的!可我是故意违背“源操作数1”的取值“规矩”的。目的是让“PLSY指令”在乐曲该停顿的“休止期”内停止执行“脉冲输出”。只要“寻址寄存器V0”的数值在按预定的“节拍”进行“增1”运算,则我的程序就能正确地“演奏”乐曲!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 10:00:03
9楼

 

  还忘了说<王林海>程序的另一个“错误”:

 

 

  当“寻址寄存器V0”的数值还小于“27”时,“D101V0”所指的数据寄存器都不是“保持型数据寄存器”,都不能保证它们的数值为“非0 的数据”!

 

  所以,这个“错误”也足以使“演奏”程序不能正确实现其“目标功能”!

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 10:59:22
10楼

 

    现在的这个<工控论坛>确实对网友们的图片内容显示不清楚!

 

  下面引用<王林海>网友在《回复网友关于PLSY指令的问题》主题下第18个跟帖贴出的图片:

7777777777777777777777

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 11:03:56
11楼

 

  再引用一张<王林海>的相关图片:            (摘自《回复网友关于PLSY指令的问题》主题下第19个跟帖)

 

66666666666666666

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-17 11:08:12
12楼

 

  再引用一张<王林海>的相关图片:  (摘自《回复网友关于PLSY指令的问题》主题下第20个跟帖)

 

5555555555555555555555

-------------------------------------------------------------------------------------------------------------------------------------------

 

  有时候,这个《工控论坛》也会换个方法来显示网友们贴出的图片,以表示他们没有把网友的图片内容的字迹压缩掉。他们用的什么方法呢?用的是“裁剪”掉图片右边一部分内容的方法。不管是压缩字迹,还是剪裁图片右边内容,都不可能让阅读图片的网友直接看清楚图片作者所表达的全部思想!

 

  下面出示他们的另一种显示图片的方法----剪裁图片右边内容

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-19 21:53:47
13楼

 

  学“自动控制专业”是需要仔细认真的。如果没有仔细认真的精神,就趁早转行!

 

acjinjin

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 33回
  • 年度积分:0
  • 历史总积分:142
  • 注册:2009年6月24日
发表于:2010-07-19 22:05:05
14楼
说得好,我顶一个!!!!!!!!!!!!!!!!!!!

koningq

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年7月23日
发表于:2010-07-31 18:50:27
15楼

你好楼主,我也出现了和王某一样的问题,不过我程序是和你的一样。但是就是在仿真的时候会有提示不支持指令。。。还望你帮忙一下。是不是仿真的时候会有这样的问题,和实物连接的话就没有了?

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-07-31 20:49:24
16楼

 

  引用<koningq >的内容:

 

  “你好楼主,我也出现了和王某一样的问题,不过我程序是和你的一样。但是就是在仿真的时候会有提示不支持指令。。。还望你帮忙一下。是不是仿真的时候会有这样的问题,和实物连接的话就没有了?”

 


 

 

  回复:

 

  你上面的这个图片还是显示不清楚!我把它的主要内容整理出来贴于下面,以此作为我们相互交流的依据:

 

 


wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-08-01 14:27:01
17楼

 

  <koningq >网友的程序的确是和我于《手把手教您写“让PLC唱歌”的程序》一帖的第4页中为刘存刚写的范例是一模一样的!我给刘存刚写范例的目的是让他在实际的PLC(FX1s   晶体管输出型)上动手练习,而不是让他只做做“仿真”!学习PLC技术很重要的一环就是实际动手能力的练习。(刘存刚网友为了学习PLC的高速指令,特意购买了一只晶体管输出型的FX1s。他的认真精神是值得大家学习的!)

 

  我没用过你们所使用的这个“仿真软件”。只能谈一点我个人的观点谨供你们参考:“仿真”、“仿真”其实质只是“仿”,而不决不是“真”!仿真软件与实际的PLC是肯定有一些差别的!

 

  我认为,仿真软件不外是也写进了相关PLC的“系统解释程序”使软件也具有PLC的运算功能,可以进行PLC指令的运算,并把运算结果显示出来。但是,它只是软件,决不可能具有实际PLC的硬件特性!在PLC中,“PLSY指令”(FNC57)的脉冲输出是靠专门的“脉冲输出硬件电路”来执行的。实际的脉冲输出元件的ON / OFF状态不是随“输出锁存器”刷新而发生改变的。它是完全独立于程序刷新过程之外的控制过程!所以我们讲:实际脉冲输出元件的ON / OFF状态与“元件映像寄存器”以及“输出锁存器”中对应元件的映像是不同的概念。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-08-01 15:31:55
18楼

 

  我不知道<王林海>、<koningq >两位网友为什么要选用“仿真”来学习PLC的高速指令?难道你们是想通过你们的“视觉”去观察了解PLC高速输出脉冲的输出元件的连续翻转过程?!

 

  从 <koningq > 网友提供的图片信息来看,该图片上的信息是 当程序运行到 V 0= 7 这一期间的状态。这时指针指向的“D127V0”(即“D134”)的内容为“K 1046”(如下图“数据块”中染为红色的内容)。1046Hz方波的“半周期”约为:0.48 mS ,也就是说每隔 0.48 mS 的时间“PLSY指令”的目标元件“Y00”的状态就要翻转一次。而“仿真结果”可能也是和“程序运行监视图像”一样,在一个程序扫描周期里只“刷新”一次。FX系列PLC的程序扫描周期一般都不低于 1 mS 。所以,靠“仿真”或“运行监视”来观察高速的连续翻转着的目标元件的状态是不现实的!除非你们用“示波器”来观察脉冲的时序函数图像,可惜“仿真软件”不是“示波器”!即便是再怎么快的电脑、再怎么快的PLC运行速度,用“仿真”或“运行监视”的功能也未必跟得上这种高速的ON/OFF显示变化!所以你们不应当试图在“仿真”或“运行监视”中用眼睛去观察“PLSY指令”目标元件在执行输出高速脉冲时的 ON/OFF 情况。

 

  在该练习题目(写个程序使PLC演奏乐曲)中,其“PLSY指令”(FNC57)的“源操作数1”所指定的频率(除“K0”之外)的各个频率都是处于人类的听觉范围内的数值,与其用眼观之,还不如以耳聆之!

 

  

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-08-01 16:13:03
19楼

 

  我现在用的编程软件还是很早以前的老版本,没有“仿真”功能,但有“PLC运行监视”和“PLC元件监视”功能。但这必须要联接实际的PLC实体来运行。

 

  我们现在用这个老掉牙的版本来做一些简单的试验,以此证明FX1s系列PLC是支持“PLSY指令”的!(不仅FX1s,就连以前老版本的FX0s、FX0n、FX2 也统统都支持“PLSY指令”!)

 

  我们先试验一个最最简单的例程: LD     M8000        PLSY      K32767        K0         Y01

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-08-01 16:32:53
20楼

 

  上图中“PLSY指令”的目标元件没有指定“Y00”,所以元件监视界面上可以看到“Y00”及“M8147”(Y00脉冲输出中)都是OFF状态;

 

  而上图中“PLSY指令”的目标元件指定为“Y01”,所以元件监视界面上可以看到“Y01”及“M8148”(Y01脉冲输出中)都是ON状态。

 


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页