想请教一下关于SCL方面的问题,请对这方面熟悉的专家与我联系

FOR i := (dbbyte+(size -1)) TO dbbyte BY -1 DO
  
    remainder := n MOD base;
    IF remainder <= 9 THEN
      WORD_TO_BLOCK_DB(INDEX).db[i] := CHAR_TO_BYTE( INT_TO_CHAR(remainder + 48) );
    ELSE
      WORD_TO_BLOCK_DB(INDEX).db[i] := CHAR_TO_BYTE( INT_TO_CHAR( remainder - 10 + 65 ) );

问题补充:
对于以上十进制转换ASC码的语句想了解下    remainder := n MOD base; 是不是n/base的余数,其中base := 10;n := num;
还有就是remainder - 10 +65 是不是为了处理10及以上的数转换为A-Z 如果有对数据处理或算法感兴趣的可以与我联系,希望共同进步~

最佳答案

1、mod就是取模运算符,也就是结果为余数;高级语言里面基本都这种语法(也有采用%)
2、ascii字符本身存储的时候就是ascii码而已

以上问题你都可以采用plcsim进行测试得到验证结果

提问者对于答案的评价:
非常感谢,游泳哥的解答,希望有空可以发个邮件到我邮箱,315502374@qq.com我即将进行一个大型系统的安调,里面包括安全、冗余等;网络涉及PN、DP、ASI,现在正在消化资料~

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc185187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月30日 下午1:33
下一篇 2017年6月30日 下午1:33

相关推荐