控制要求
1. 系统结构
-9个LED(Y0~Y8)排成一条直线。
-中间LED(Y4)代表拔河绳的中点。
-双方各一个按钮:甲方按钮X0,乙方按钮X1。
2. 比赛规则
-按开始按钮 → 亮点回到中间Y4,比赛开始。
-甲方每按一次X0 → 亮点向甲方方向(左)移动一位。
-乙方每按一次X1 → 亮点向乙方方向(右)移动一位。
-亮点移动到甲方端点Y0 → 甲方获胜,甲方得分+1,亮点停在Y0,按钮无效。
-亮点移动到乙方端点Y8 → 乙方获胜,乙方得分+1,亮点停在Y8,按钮无效。
-再按开始按钮 → 亮点回到Y4,重新开始比赛。
3. 核心变量
-甲方得分:VB0。
-乙方得分:VB1。
-亮点位置:MB0(0~8,对应Y0~Y8)。
I/O 分配表
内部变量
程序设计思路
1. 状态定义
-比赛进行中:M0.0=1,双方按钮有效。
-比赛结束:M0.0=0,双方按钮无效。
2. 比赛开始
-按开始按钮 → 亮点移到Y4(MB0=4)。
-M0.0=1(比赛开始)。
3. 甲方按键()
-条件:比赛进行中 且 当前未获胜。
-动作:亮点左移一位(MB0-1)。
-判断:如果MB0=0 → 甲方获胜。
4. 乙方按键()
-条件:比赛进行中 且 当前未获胜。
-动作:亮点右移一位(MB0+1)。
-判断:如果MB0=8 → 乙方获胜。
5. 获胜处理
-M0.0=0(比赛结束)。
-获胜方得分+1。
-亮点停在端点亮着。
-双方按钮无效。
6. 显示
-根据MB0的值点亮对应的LED。
梯形图程序
// 网络1:上电初始化
// 亮点在中间Y4// 甲方得分=0// 乙方得分=0
// 比赛未开始// 灭所有灯
// 网络2:开始按钮(复位到中点)
// 开始按钮// 亮点回到Y4// 开始比赛
// 网络3:显示亮点位置
// 先清除所有LED// 根据MB0点亮对应LED
// 网络4:甲方按键(向左移动)
// 甲方按钮// 比赛进行中// 未到左端点// 左移一位
// 判断是否获胜(到达Y0)
// 比赛结束// 甲方得分+1
// 网络5:乙方按键(向右移动)
// 乙方按钮// 比赛进行中// 未到右端点// 右移一位
// 判断是否获胜(到达Y8)
// 比赛结束// 乙方得分+1
边界条件处理
总结
本例 个人观点 ,内容仅供参考,请仔细甄别。
END
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!