zmrs163
级别: 家园常客
精华主题: 0
发帖数量: 378 个
工控威望: 526 点
下载积分: 1476 分
在线时间: 325(小时)
注册时间: 2017-06-12
最后登录: 2025-01-03
查看zmrs163的 主题 / 回贴
楼主  发表于: 2022-01-18 10:27
本人比较喜欢研究算法,大家在编程时有什么算法相关的问题可以留言下,我会尽力提供解决方案或程序
zmrs163
级别: 家园常客
精华主题: 0
发帖数量: 378 个
工控威望: 526 点
下载积分: 1476 分
在线时间: 325(小时)
注册时间: 2017-06-12
最后登录: 2025-01-03
查看zmrs163的 主题 / 回贴
1楼  发表于: 2022-01-18 14:21
1.我的理解是流水线最多200个轮胎,只在入口检测,到对应位置打开对应输出?首先标定各个输出与入口的距离存入数组(假设为p1,p2,p3...),然后整个线体一圈假定N个脉冲,计数器为环形计数器最好,不是的话需要程序取余数但是可能溢出会导致取余数不准。当入口感应到轮胎则记录当前编码器数字假设为P,然后就得到了每个输出输出时的位置(P+P1)MOD N,当当前值大于等于此值时输出打开一段时间。上述可以构造一个200*40的数组实现,然后输出过后可以再设置个标志位,当所有标志位ON之后就可以清除这个轮胎的位置数据了。
2.可以理解成原本Y0对应Y0,Y1对应Y1,。。。程序可以先做一次映射,比如Y0--M0,Y1--M1。那么原本的映射关系可以看成是M0=Y0*1+Y1*0+....所以所要做的是构建一个单位矩阵,对角线全为1,映射关系就是矩阵的乘积,所以输入数字改变映射关系就是改变这个矩阵,也就是每一行1的位置,这个应该就没啥难度了吧,这样可以实现全输出任意映射的切换。
3.没太看懂题目?感觉用个存储1--8的8个寄存器队列,移动一次先出后入一次记忆工位,产品对应关系,然后另有8个寄存器存储报警。报警发生时,现根据队列找到对应关系然后存入报警信息不就好了?
4.怎么提取,输入起始位置和长度提取?要是我就直接整个字符串异或0b1000 0000,因为ASC范围也就到0X7F,这样把H00转化成合法字符串用字符串指令操作好再异或回来。
5.二分法,思路很简单只不过写的时候细节很多。
zmrs163
级别: 家园常客
精华主题: 0
发帖数量: 378 个
工控威望: 526 点
下载积分: 1476 分
在线时间: 325(小时)
注册时间: 2017-06-12
最后登录: 2025-01-03
查看zmrs163的 主题 / 回贴
2楼  发表于: 2022-01-18 14:36
6.看不懂。。准备好是输入点信号?其他站号不得动作啥意思,继续完成后面的动作又是啥意思。。
7.变址循环不就好了,细节太少导致问题可难可简单。比如说先开始的动作一定要完成了才能进行下一步吗,还是先开始就行,只要在下个相同动作开始前完成就行。还有你的输入是一个不定长的数组吗,动作完成后有信号返回吗类似等等。
zmrs163
级别: 家园常客
精华主题: 0
发帖数量: 378 个
工控威望: 526 点
下载积分: 1476 分
在线时间: 325(小时)
注册时间: 2017-06-12
最后登录: 2025-01-03
查看zmrs163的 主题 / 回贴
3楼  发表于: 2022-01-18 17:34
比较忙写了第二个,本来想用矩阵结果模拟太卡,就直接用数字减少计算量了
附件: 输出转换.rar (440 K) 下载次数:137
网站提示: 请不要用迅雷下载附件,容易出错