n
描述
访问WinAC ODK的共享内存接口(SMX)在16k字节以上的IO地址。在程序块中输入IO 地址,在STEP7 V12 中得到了一条错误信息显示为"The address you entered is outside the permissible address area"。并且不能对块进行编译。n
例子
ID16384 //在STEP7 V12的编辑器 (STL, SCL)中不允许对以起始地址为16384 的IO地址进行直接访问。n
说明
访问WinAC ODK的共享内存必须使用间接寻址。程序运行时地址才确定下来。没有错误信息输出并且程序块能够被编译。n
下面的示例代码显示了如何通过SCL语言进行读写访问。程序通过国际助记符DWORD 数据类型进行编程。n
SCL - 读访问示例
n
命令 | 解释 |
#InVariable := %ID(16384):P; | 运行时将来自共享内存的一个 DWORD 拷贝到变量"InVariable" 中。 |
SCL - 写访问示例
n
命令 | 解释 |
%QD(16384):P := #OutVariable; | 运行时将变量"OutVariable" 拷贝到共享内存中。 |
下面的示例代码显示了如何通过STL语言进行读写访问。程序通过国际助记符DWORD 数据类型进行编程。n
STL - 间接寻址读访问
n
命令 | 解释 |
L 16384 | 装载SMX 地址 |
SLD 3 | 左移3位 |
T "InVariablePointer" | 传递指针到存储器中 |
L PID ["InVariablePointer"] | 间接访问PID16384 |
T "InVariable" | 保存来自于SMX的值到变量中 |
STL - 间接寻址写访问
命令 | 解释 |
L 16384 | 装载SMX 地址 |
SLD 3 | 左移3位 |
T "OutVariablePointer" | 传递指针到存储器中 |
L "OutVariable" | 装载变量variable值 |
T PQD "OutVariablePointer" | 写变量值到SMX 区域 |
附加信息
关于WinAC ODK主题的更多信息请参考条目 67217690。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327567.html