签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
比如四个探头,两个报警触发逻辑。有没有专门的fc块来编这样的程序
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1625835&b_id=4&s_id=0&num=14
半字节的值与以下集合中的每个元素做比较,相等即输出报警。{3,5,9,6,10,12}
这个问题本质上是统计位串中值为“1”的总个数,可以找相关使用计算机语言阐述的专题看看。
从排序后的队列中取一个数值,比如2oo4,就取队列中第二个数值与标准值比较,结果输出。
排序程序在各版块都有讨论
好复杂,楼主描述问题能不能详细些?
不过从跟贴看问题似乎是有四个报警点,任何两个为ON就触发处理逻辑。不知道我理解的对不对?
1/只是两个有效吗?三个四个呢?
2/很好解决呀。每个点分配一个int,报警On则int=1,报警Off则int=0.
求和呀,Sum=int1+int2+int3+int4。sum=2。。。。。
stl:
L 0
T sum
A I0.0
jcn m1
L sum
L 1
+I
m1:A I0.1
jcn m2
m2:
A I0.2
jcn m3
m3:A I0.3
jcn m4
m4:nop 0
L 2
>=I
jcn m5
需要报警编写的程序
m5:nop 0
CONST
// Constants
Total:= 4; //定义的总探头数目 可以更改
END_CONST
VAR_INPUT
input:ARRAY[1..Total] OF BOOL;
END_VAR
VAR_OUTPUT
movement:BOOL;
VAR
store:ARRAY[1..Total] OF INT;
NO:INT;
sum:INT;
FOR NO:= 1 TO Total BY 1 DO
// Statement Section
IF input[NO] THEN
store[NO]:=1;
ELSE
store[NO]:=0;
END_IF;
IF NO =1 THEN
sum:= store[NO];
ELSE sum := sum + store[NO];
IF sum >= 2 THEN //当探头同时有两个检测到 可以更改
movement:= true; //movement 为 你需要执行的动作
movement:=false;
END_FOR;
END_FUNCTION_BLOCK
IF sum >= 2 THEN // 如果要求必须是两个 则 =2 如果大于等于两个都要动作,则>=2
300有现成的块FC99
这个需要自己编写判断,用卡诺图分析逻辑然后就可以按照逻辑表达式编程序。
需要楼主对程序深入了解,就会发现编程就像说话一样,按照顺序描叙清楚即可。
用真值表图 写程序
四个输入,点数少,直接用枚举,不涉及输入点的连续性,用梯形图表达,也比较直观。
这类问题,难点不在编码上,重要的是数学上的逻辑。掌握如何将物理问题诉求量化为数学问题,此后通过计算进行选择,这种建模能力是工程师创造力的基础。这种能力和方法的探讨更有价值。
感觉这个问题很好解决啊?有那么难吗?还是我想多了》》》》?????四个探头报警前面加四个敞开点不就好了吗?用那个就投入那个,,这不就是选择吗?
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录