PLC编程问题解答:网友求助帖解析
需积分: 6 134 浏览量
更新于2024-09-11
收藏 572KB PDF 举报
"本文主要展示了两个关于PLC编程的网友求助问题及解答,涉及PLC中的位逻辑操作、数据移位以及与运算等基础知识。"
在这篇帖子中,作者wyb2866255解答了两位网友关于PLC编程的问题。第一个问题涉及到输入变量I1.0至I1.3的状态变化对QW0输出的影响。原问题描述中,网友认为当I1.0-I1.3的初始状态为1100,I0.0接通后,QW0的16进制值会按照0.3.30.300.3000.0的顺序变化。然而,作者指出这种理解是错误的。
作者首先解释了问题中的程序逻辑。网络1使用了SM0.0作为启动条件,确保QB1的低4位始终等于IB1的低4位。因此,当IB1的低4位(I1.0-I1.3)为1100时,QB1的低4位也会是1100,即16进制的0x0C。网络2中,QW1的低字节是QB2,高字节是QB1,而网友误将QW1理解为QW0。如果I1.0~I1.3的输入状态变为1_1_0_0,QB1的值会变为0x03,QW1则为0x300(即16进制的300)。执行左移4位操作后,QW1的值会变为0x3300,而不是网友预期的0x3000。这是因为QB1的低4位始终保持为0x03,即使QW1左移,QB1的低4位也会因为IB1的低4位不变而保持不变,导致QW1的值始终是0x3300,QW0的值则恒为0x33。
为达到网友期望的结果,即QW0的16进制值依次变为3.30.300.3000.0,作者给出了修改后的程序设计。首先,在程序开始时,通过QW0的清零操作和M0.0的状态控制,确保QW0初始值为0。然后,当I0.0的前沿触发时,QW0会进行左移操作,接着通过IB1与16#0F的与运算,将I1.0-I1.3的状态(1100即0x0C)与0x0F进行逻辑与,结果存入QB1。由于0x0F的二进制形式是1111,与运算只会保留I1.0-I1.3的低4位,因此QB1的值将根据I1.0-I1.3的状态变化,依次为0x00, 0x03, 0x30, 0x300, 0x000,从而实现QW0的预期变化。
总结来看,这个帖子揭示了PLC编程中位逻辑操作、数据移位和与运算的基本原理,以及如何利用这些操作来实现特定的逻辑功能。对于初学者来说,这是一份很好的学习资料,能够帮助他们理解和掌握PLC编程中的基本概念。
2013-10-28 上传
2013-08-28 上传
2013-05-15 上传
2013-08-12 上传
2013-09-16 上传
2013-08-12 上传
2013-08-12 上传
2014-01-23 上传
2013-09-03 上传
天使也不快乐
- 粉丝: 2
- 资源: 139
最新资源
- 【ssm管理系统】医疗信息管理系统.zip
- exportific:抽象语法树(AST)简易教程,附加一个简单的源码编辑工具
- ios14.6真机调试包
- 73024452,c语言编写动画屏保源码,c语言
- c_sharp_homework_2
- VulkanEngine:基于VkGuide的项目
- NIM_Android_AVChatKit:网易云信Android音视频组件源码仓库
- drf-problems:它在HTTP API中引入了“问题详细信息”
- atom-bezier-curve-editor
- covid追踪器
- NIM_Android_RtsKit:网易云信Android RTS组件源码仓库
- ggp_mongoose:我的普通玩家!
- principle中拖拽效果的小案例演示.zip
- emial_classification
- RecyclerViewTest:这个项目是网易云课堂课程《 Android控件之RecyclerView》的
- tests:测试多个组件