当前位置: 主页 > PLC控制

S7-200读取旋转编码器问题

我现在用224CPU(DC/DC)读取旋转编码器输入脉冲信号,计划用I0.0口读取,我的编码器转一圈输入1024个脉冲,请问PLC程序如何编写,(接线时,不是是编码器VCC接PLC+24V,编码器电源负端接PLC的M端,输入信号直接接I0.0),按照PLC向导,就是监控不到HC0数据,请问哪位大哥有相关程序例程,谢谢.

最佳答案

参考一下:
程序通过先设定计数器的值,本例中设定值为10;按设备启动按钮I0.1启动设备,运行后通过信号输入点I0.0进行计数,当计数当前值等于设定值10时,输出点断开,设备运行停止。I0.2为设备停止按钮。程序如下:
LDSM0.1
MOVB16#C8,SMB37
HDEF0,0
MOVD+0,SMD38
HSC0
上述程序注解:(1)对高数记数器HSC0初始化,写入控制字节(16#C8含义为:要求进行初始值设定;不装入预设值;运行中不要求更改计数方向;计数器类型为增。)(2)执行HDEF指令,进行高速计数器工作模式的选定设置(计数器为HSC0;模式为0)(3)初始值设定:装载高数记数器初始值为0(4)执行HSC指令,写入HSC0设置。LDNM14.0
EUMOVB
16#C8,SMB37
MOVD+0,SMD38
HSC0
上述程序注解:当记速值达到要求值时,M14.0复位,高速计数器计数将复位为初始值,以备下次计数使用。
LDD<HC0,+10
=M14.0
上述程序注解:当计数器值小于10时,M14.0始终处于置位状态。
LDI0.1
OQ0.0
ANI0.2
AM14.0
=Q0.0
上述程序注解:I0.1为设备启动信号;I0.2为设备停止信号。高速计数器累计值达到10时,设备运行停止
参考链接:
htTP://www.ad.siemens.com.cn/service/answer/solution.ASpx?Q_id=89590&cid=1028
《西门子S7-200?LOGO!?SITOP参考》V0.92版(更新版)(2008.02.15)下载
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136

高速计数器的使用方法,连接:
http://blog.sina.com.cn/s/blog_5d7ca9d90100cesx.html

http://www.plc100.com/siemens/shili/yingyong.htm


一个高速计数器的例子:
LDSM0.1
MOVB16#FC,SMB37
HDEF0,9
MOVDVD100,SMD38
MOVD16#FFFFFFFF,SMD42
ATCH长度到达:INT1,12
ENI
HSC0
使用时将HSC0的值做相应的计算;比较。


可参考:
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=60718&cid=1028


参考资料:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_id=79333&cid=1028

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。
也请注意后面的两个答案。

  • 关注微信

猜你喜欢

微信公众号