回复:TIA博途程序用SCL编辑到底能不能比梯形图工资高3000元/元

已锁定

手机用户20210928276720

  • 帖子

    22
  • 精华

    0
  • 被关注

    0

论坛等级:游士

注册时间:2021-09-28

普通 普通 如何晋级?

发布于 2022-12-20 16:15:19

34楼

展开查看
以下是引用永丨恒在2022-12-15 16:26:55的发言 >33楼

PLC编程语言不能决定工资,经验,能不能做项目才是决定工资的根本

TIA博途SCL编程学习35_另类比大小

作者:工控老炮儿

1 | 题目



定义一个FC或FB,比较两个数(双整数)的大小,只需要判断出小于或不小于(即大于等于即可)。判断结果如果是小于则输出TRUE,如果是不小于则输出FALSE,注意不能使用大于、等于和小于运算符,也不能使用IF语句。



2 | 设计分析



双整数的长度为32位,由两部分组成:一部分是符号,另一部分是数值。第0位到30位表示数值。第31位为符号位,表示值的正负状态,值为0(FALSE)表示正值,为1(TRUE)表示负值。利用符号位进行两个数的大小比较。



3 | 创建功能或功能块



添加功能块FB,命名为:“DIntCompare”。




4 | 定义接口变量



具体接口变量定义见下图:

 

输出变量(Output)是一种非常特殊的变量,建议变量命名时加以区分,我在命名时加了一个Q。后面有机会的话,可以和朋友们进行深入交流。

5 | 程序代码



编写程序代码。如下图:

 

博途SCL提供了访问数据单元某一个位的简洁方法“%X位号”,即片段访问。



6 | 代码测试



在循环OB中调用FB- “DIntCompare”,调用时会自动创建背景数据块,命名为“InstDIntCompare”,本例不使用背景数据块而是使用监控与强制表的方式进行监视和修改数据,因为背景数据块监视不能进行显示格式选择。

转至在线并监控程序。如下图:

 

999和888比较,999大于888,符号位为0,输出结果为FALSE,即不小于。

 

666和888比较,666小于888,符号位为1,输出结果为TRUE,即小于。



7 | 总结



变量定义时如果定义为临时变量,在监控和强制表中看不到;

片段访问可以用X访问位单元、B访问字节单元、W访问字单元、D访问双字单元。


西门子 1500 1200 PLC,位访问, 字节访问

访问byte,word中的位

mybyte.%X1
myword.%X1

访问word/dword中的byte

myword.%B0
myword.%B1
myDword.%B0

文中mybyte, myword, mydword请替换为自己的变量

资料下载:

TIA博途SCL编程学习35_另类比大小.pdf


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。