您现在所在的是:

西门子SIEMENS

回帖:7个,阅读:3162 [上一页] [1] [下一页]
* 帖子主题:

s7-1200数据结构

1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2015/1/11 13:48:34
#0楼
S7-300可以把数据结构(STRCUT)
名称 数据内型 偏移良
R1 STRCUT   0
CW STRCUT   字 0
cw1 bool    0.0
cw2 bool   0.1
cw3 bool    0.2
cw4 bool   0.3
CW5 bool   0.4
CW6 bool   0.5
CW7 bool   0.6
CW8 bool   0.7
CW9 bool   1.0
CW10 bool  1.1
等16位布尔量,用END_STRCUT来结束。在应用时,cw5位置1时,可以用传送MOV DB1.DBW0 mw200,请问一下s7-1200可以这样应用。
8158
cfm6662008
文章数:2613
年度积分:50
历史总积分:8158
注册时间:2010/4/5
发站内信
2016国庆活动(三)
发表于:2015/1/11 20:04:00
#1楼
正在学习使用s7-1200软件,没用过这个,话说系统手册内容比s7-200多太多了,1k多页
2013我来了,多看,多问,多实践
天道酬勤,事在人为
38107
cvlsam 版主
文章数:12488
年度积分:718
历史总积分:38107
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2015/1/11 20:46:54
#2楼
以下是引用yuanqijun882015/1/11 13:48:34的发言:
S7-300可以把数据结构(STRCUT)
名称 数据内型 偏移良
R1 STRCUT   0
CW STRCUT   字 0
cw1 bool    0.0
cw2 bool   0.1
cw3 bool    0.2
cw4 bool   0.3
CW5 bool   0.4
CW6 bool   0.5
CW7 bool   0.6
CW8 bool   0.7
CW9 bool   1.0
CW10 bool  1.1
等16位布尔量,用END_STRCUT来结束。在应用时,cw5位置1时,可以用传送MOV DB1.DBW0 mw200,请问一下s7-1200可以这样应用。

您可以在S7-1200创建新的数据类型,例如您这个结构变量。

附件 snap1.jpg

但是,仅能在DB中定义变量类型为用户定义(UDT)的变量,在PLC的变量表内无法定义。


附件 snap2.jpg
为了使用这个定义的结构变量,所以需要创建一个DB,并在DB中定义类型为结构的变量。

同时,因为博图需要先定义,再使用变量,所以需要将DB1.DBW0定义一个符号,例如这里的AAA,这样就可以使用了。

附件 snap3.jpg

Good Luck~
1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2015/1/12 11:39:21
#3楼
谢谢!非常好!
1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2015/1/12 13:47:33
#4楼
我是说:如果CW1-CW16这16位布尔量,其中有一位或几位为1时。
例如:cw1等于1  cw4也等于1时,二进制位0000000000001001   十进制等于9, 把十进制9传送到mw200中
10558
osp321
文章数:4823
年度积分:50
历史总积分:10558
注册时间:2007/6/5
发站内信
寻找英威腾(三)
发表于:2015/1/12 15:38:08
#5楼
楼主 这个当然可以啊 S7-1200还是很好用的  特别是数据块 楼主直接建立了16位变量 可以直接读取这个字
[此贴子已经被作者于2015/1/12 15:39:13编辑过]
总有一天我不再做枝头上夜莺的哀吟
像沙翁中的云雀,我会一翅冲天
为泱泱大国的中华唱出我赞美的诗章;
1434
yuanqijun88
文章数:44
年度积分:50
历史总积分:1434
注册时间:2010/11/24
发站内信
发表于:2015/1/12 16:06:57
#6楼
S7-300可以把数据结构(STRCUT)
名称 数据内型 偏移良
R1 STRCUT   0
CW STRCUT   字 0
cw1 bool    0.0
cw2 bool    0.1
cw3 bool    0.2
cw4 bool    0.3
CW5 bool    0.4
CW6 bool    0.5
CW7 bool    0.6
CW8 bool    0.7
CW9 bool    1.0
CW10 bool   1.1
CW12 bool   1.2
CW13 bool   1.3
CW14 bool   1.4
CW15 bool  1.5
CW16 bool  1.6
END_STRUCT
我是说:如果CW1-CW16这16位布尔量,其中有一位或几位为1时。
例如:cw1等于1  cw4也等于1时,二进制位0000000000001001   十进制等于9, 把十进制9传送到mw200中.
请问一下s7-1200能不能这样应用。问题是,s7-1200能块复位,也不能块置位。只能在DB块中建立数组  bool  cw1-cw16.才能块复位或置位。
38107
cvlsam 版主
文章数:12488
年度积分:718
历史总积分:38107
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2015/1/12 21:09:06
#7楼
以下是引用yuanqijun882015/1/12 16:06:57的发言:
S7-300可以把数据结构(STRCUT)
名称 数据内型 偏移良
R1 STRCUT   0
CW STRCUT   字 0
cw1 bool    0.0
cw2 bool    0.1
cw3 bool    0.2
cw4 bool    0.3
CW5 bool    0.4
CW6 bool    0.5
CW7 bool    0.6
CW8 bool    0.7
CW9 bool    1.0
CW10 bool   1.1
CW12 bool   1.2
CW13 bool   1.3
CW14 bool   1.4
CW15 bool  1.5
CW16 bool  1.6
END_STRUCT
我是说:如果CW1-CW16这16位布尔量,其中有一位或几位为1时。
例如:cw1等于1  cw4也等于1时,二进制位0000000000001001   十进制等于9, 把十进制9传送到mw200中.
请问一下s7-1200能不能这样应用。问题是,s7-1200能块复位,也不能块置位。只能在DB块中建立数组  bool  cw1-cw16.才能块复位或置位。

西门子PLC支持位引用,你的这种要求还有必要建立一个16位的结构变量吗,直接MOV DB1.DBW0  MW200就完事了。

至于块复位,MOV 0 DB1.DBW0就给DB1.DBX0.0~DBX1.7复位了,置位同理。

Good Luck~

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004