在scl中如何置位?

说一点个人意见:在西门子PLC中有STL语言和SCL语言,相对于STL语句表编程来说SCL语言使用更少,SCL是Structured Control Language的缩写,也就是结构化控制语言的意思。在西门子PLC中SCL编程其实是创建了一个源文件,然后利用源文件去生成对应的数据块,而后在响应的程序块中调用生成后的这个程序!就你这个问题,在SCL中如何置位其实是很简单,就是IF 条件A成立 THEN 位B就被置位,这样一句话就可以了,还是上图来讲一下。

这个图片就是我要生成FC1程序块的SCL程序的源程序,这个程序编译之后在STEP7软件中就会生成一个FC1的程序块。SCL编程是需要单独的一个安装组件安装后集成到STEP7系列软件中,因今天问题的主旨是SCL中的置位所以,我就不讲SCL组件的安装了。(前一段我写了一篇文章说如何在STEP7安装文件夹中找西门子的文档,里边我上传了我安装的软件的切图,不明白的可以去看看,或许你电脑就没有安装这个SCL安装包。

)--总之,这个图片就是SCL安装包安装后打开才能编辑的一个源文件编辑器,红圈①处我定义了FC1的2个输入点形参,红圈②处我定义了2个输出点形参。--当然输入和输出都是bool变量。紫圈③处就是一个置位语句,X1=1的时候,就会使得Q1被SET为1。紫圈④处是一个Q2的状态始终等于X2状态的语句,相当于X2=1,Q2=1;X2=0,Q2=0。

来看一下源文件编译后生成的FC1在OB1中调用的情况吧:这个图片是我组合的图片,上边部分可以看到这个项目只有2个程序块,OB1和FC1,OB1的创建语言就是LAD即梯形图,FC1的创建语言就是SCL。图片的下边部分是OB1中调用FC1两次,可以看到FC1输入参数2个是X1和X2,输出参数是Q1和Q2还有一个返回值。

上边我的SCL中X1对应Q1,X2对应Q2。再来看一下程序执行的动态图,来看看Q1是否被置位了?从这个动态图片应该可以看到,我点击M0.0让其为1后M1.0就被置位为1,无论我后边再怎么点击M0.0,M1.0都是为1的状态,因为SCL程序中没有复位的程序,所以置位后就一直为1了。M0.1我点击时候M1.1随着M0.1的状态在改变,因此我在SCL中的注释是点动关系。

M0.2和M0.3也是和前边的状态一样,不过是第个FC1块的实参而已,因此他们的动作和前边的M0.0 M0.1一样。想必到这里你已经知道SCL中置位程序的实现方法了,答题也就结束了。但是,还需要强调的是SCL中的符号, 如分号,冒号的录入,大家一定要小心,和C语言一样,如果少录或者录错,都会引起编译错误,我图上最后是0错误和0警告,所以如果要自己实验的朋友,如果有错,请和我的图片仔细对比,谢谢!就说到这里了,希望对你有帮助,谢谢!。


文章TAG:语言  scl  结构化  控制  
下一篇