故事作者:专家大讲堂

最近创作

看看TA的故事

【专家大讲堂】20191218 从S7-300到S7-1500编程大不同——直播答疑

已锁定

专家大讲堂

官方工程师 西门子1847工业学习平台

  • 帖子

    17
  • 精华

    0
  • 被关注

    16

论坛等级:游侠

注册时间:2010-04-28

普通 普通 如何晋级?

【专家大讲堂】20191218 从S7-300到S7-1500编程大不同——直播答疑

2352

1

2020-07-24 16:41:39

直播时间:2019年12月18日(周三)19:30-20:30

 

主讲专家:段礼才

 

课程回看:

http://www.ad.siemens.com.cn/service/elearning/Course/2459.html

 

直播答疑汇总:

Q1:软件升级不是为了更方便使用吗,怎么感觉越升级越繁琐了?

A1:在这里我说一下我的看法,实际上大家认为的繁琐,可能就是从STL语言,觉得这个陷阱比较多,然后300、400到1500有些不同。实际上从我们课程所举的这些实例来看,1500它是延续了300、400的STL语言,但是它实际上多了一些访问上的优化,比如说我们在访问的时候,STL语言,你的这个寄存器的访问,就在一个语言里进行分析,这个好处对于我们工程师来说,编程也好,或者说维护程序也好,是比较便利的,最起码界限比较清晰。

 

Q2:哪里有系统的SCL语言编程的培训?

A2:西门子在后续将会有比较系统的,1500的基于博途的高级编程课程推出,大家可以关注一下。

 

Q3:1500如何实现FB10背景数据块的切换?

A3:其实这个问题呢,我们在300、400也有相应的功能,只能说到了博途,到了1500,原来这个BLOCK_ DB换成了DB_any,这个在课程里也提到过,我们可以在STL语言里面,我们CALL FB块的时候,FB块逗号后面的DB块我们可以用一个DB any类型的变量来替换,这样来实现背景数据块的替换。

 

Q4:为什么用博途移植step7程序会失败?

A4:实际上我们从STEP7移植到博途,这个时候没有到1500,还是300、400PLC项目的,这个时候我们移植是需要一些条件的,我们需要你原来这个STEP7做一致性的编译,这是一个,第二个呢,你STEP7里有哪些组件,在博途里也必须有相应的组件,比如说原来的STEP7项目你组态了GSD文件,比方说从站或者IO设备,那么在移植前,需要在博途你的这个软件里边先提前安装相应的GSD文件,这样才能移植成功。

 

Q5:SCL语言编程是否会比梯形图更强大?

A5:实际上我们说SCL语言是一种高级语言,是结构性的文本编程语言,最多的使用是用于一些复杂的算法,但是实际上1500的编程特点,包括我们说的这个它的绝对地址,用于像DB块、M区等等这些间接寻址,我们说peek,poke对SCL语言支持,除此之外呢,我们用数组下标访问,variate变量指针的访问,在SCL语言中都是非常便利的,1500提供了很多基于variate变量的指令。当然了,我们不管说是SCL语言还是梯形图,它都有相应的指令,就看大家的编程习惯是偏向于基于梯形图还是SCL,那么就我们的编程习惯来说,一个是它的可读性来说,可能就目前来说SCL语言使用会越来越广泛。

 

Q6:在博途里,1500是否能直接删除它的SCL的源文件?

A6:实际上我们知道,在博途里面编SCL语言程序块的时候,它不像STEP7里面是需要建一个源的,在博途里面没有源,就是你在编程的时候见到的就是SCL的程序块,除非你需要导入,导出或者说生成这个源,它才会有SCL语言的源文件。

 

Q7:STL语言从官方上来说是不是将淘汰了?

A7:实际上从目前来说,1500的这个STL语言我们是不推荐使用,那么它的使用广泛还是用于300、400移植过来的这种系统项目。如果说有些应用,比方有些熟悉的工程师用惯了STL语言,实际上

还是有些便利的地方,比如说指针寻址。那么1500的指针寻址,不管是any,还是pointer,实际上这个结构呢是从300传承过来的,是有一些改变,但是这些改变要说的话可以理解成是一种进化,从我们课程里实际上也讲到了那些特点,要注意的一些事项,比方说传递参数也好,还是寄存器,像地址寄存器AR,DB寄存器这些影响,实际上我们看它在1500里是简化了。如果说我们还要用1500编STL语言的话,我们编程的时候,这个结构就容易设计了,而不会像300、400,块和块之间,梯形图和STL语句之间有互相穿插的,包括FC,FB调用互相穿插,互相影响,这样的话对工程师而言,是一个很大的考验。设计的时候,除了正向思维考虑实现这个功能,还要反向思维思考会不会影响我们其他的这个程序。那么在1500里面,可能它这个设计,考虑的就要少一些。

 

Q8:想要把byte数据传递到未知类型的DB里?

A8:那么这个未知数据类型的DB块,我理解可能比方说它不是一个简单的数据类型,比方说是一个结构,或者说是UDP等这些类型,1500有一个指令叫序列化和反序列化,那么如果说是把字节数组传递到这种结构性的变量里,这个叫反序列化,咱们可以用这个指令,反过来也可以用序列化指令。

 

Q9:graph语言干嘛用的?

A9:咱们这个课程里没有讲到这个graph语言,它是用于顺控的,是一种特殊应用的编程语言,用于顺控。

 

 

Q10:SCL语言的程序是否会影响循环时间?

A10:这和程序设计有关系,就是说一个程序,比如说一些复杂运算,那你是在一个周期里执行完呢,还是需要多个循环来执行,比方说你是用for循环,那就意味着这个程序的运算是在一个周期里完成的,那么他就可能比较影响循环时间。那么说你是通过计数或者是条件判断是放在多个循环里去执行这些算法,影响对主循环就会弱化,大家可以考虑一下这些编程方式。

 

 

Q11:word的16位要转换成16位的bool?

A11:这种功能有两种实现方法,一种实现方法就是AT,AT我们知道,比如说FC或者FB里面你声明了一个word变量,那么这个变量你就可以AT成一个16个的bool量数组,那么word它有一个变量名,你每一个bool量数组都有一个各自的变量名,这样bool和word都可以单独访问,而且也有各自的名称,这是一种方式。还有一种方式,就是我们之前课程里看的那个表,就是slice access片段访问,片段访问里比如说我们用word.x0,x1一直到x15,一共用16位,用片段访问也是可以的。

 

 

欢迎大家继续盖楼讨论


【专家大讲堂】20191218 从S7-300到S7-1500编程大不同——直播答疑 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

专家大讲堂课后探讨

共有139条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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