工控编程吧

标题: 利用TIA Portal V12 编程的一些看法 [打印本页]

作者: baikhgmv    时间: 2016-9-22 11:59
标题: 利用TIA Portal V12 编程的一些看法
利用TIA Portal V12 编程的一些看法最近使用了V12对PLC进行编程,没用多久,随便谈一下自己的感受。
以前大量使用stl对300\400编程,熟练也熟悉了使用绝对地址进行编程,特别是在使用间接寻址的时候,非常方便寻址。同时也用Rockwell编写程序。Rockwell软件最大看点就是1符号寻址,2拖拽编程,其它方式都不如西门子的方便(个人理解,用AB的东西不是很多)。但是西门子Portal这个软件一方面吸取了他的优势,同时也把自己搞混乱了。
举例来说一下,portal是偏重符号编程的,也偏重scl语言的。数据块和FC、FB都有个优化的块这么个属性,点上就是符号寻址,不点就可以寻址。优化的块优化程序,优化代码和执行。但是在一些FC、FB参数传递时,特别是DB作为参数传递时我到现在还不知道怎么直接通过符号传递。使用Peek或者peek_bool时都需要使用绝对地址,而不能使用符号编程。
我个人看法,也许可以编程而我不知道。有时间大家讨论一下


------总结一下,西门子现在又想使用符号编程,又没有充分准备好相应的软件指令。在编程中,使用者虽然愿意使用新的功能,但是又不能完全使用现有指令完成。典型的问题就是DB块的间接寻址问题。如果使用优化的块进行寻址,那么无法实现在FC和FB中间接寻址。如果要使用间接寻址(peek/pork)又不能具有优化的属性。那么最终就得放弃DB块编程这种方式,而改用结构体和UDT方式全局访问。我感觉西门子在全面向AB的编程方式转变。有点泪奔啊!!!


-------优化的DB块有优化的优势,我觉得标准的地址提供的访问方式,优化的DB都可以。
比如:
可以用索引访问替代 – 例如: L #my_array[#index]
支持“Field_Data”.Numbers[“i”]方式访问
支持Slice 访问

更重要的是优化的DB提供了更快的访问速度!!PLC运行更快!


----------详细问一下,还是没有完全明白。你的意思是不是要用矩阵来解决呢?我举个例子,你帮忙看一下:
一个DB(DB1 符号名字Data_Block1)的内容是两个结构index1、index2,每个结构里有一个布尔一个整数(也许有很多的更复杂的数据类型,这里只是举例子),我们给他们命名为Bool1、Int1,Bool2、Int2。现在我要在一个FC(FC1 符号名Test)中调用这个DB块,FC1有个形参(DB_Para 数据类型为DB_Any)用来传递DB1.现在我要在FC1使用DB中的参数,怎么使用呢???要保证FC和DB是优化的块。
另外只是使用矩阵,在M区建立相应的结构,在FC中调用矩阵中的结构,然后引用变量,这种方法是可以的,这就是AB的解决方案。对于simens来说他有一个DB这样一个特殊的结构,还是想利用DB来传递参数,否则是不就没有必要利用DB了。

-------看看这个,能解决楼主的问题了吧。

(, 下载次数: 0)