我正在和PLC一起工作,作为练习,我正在用C语言编写一个小的PLC程序,以帮助我更好地理解C语言、PLC语言以及将梯形逻辑转换成C语言。
我使用的可编程逻辑控制器有一个固定的内存空间,变量存储在“V内存”位置例如,我将温度值31存储在一个名为V3700的内存位置所以任何时候我需要控制温度,我在程序中使用V3700为了模拟可编程逻辑控制器的内存空间,我只需要使用一个名为Vmem[65536]的数组。
可编程逻辑控制器使用八进制寻址。所以在上面的例子中,V3700是八进制的,所以它实际上是0x7C0或1984(十进制)。
我想做的是简化写作,这样我就不必使用括号了例如。:

//current method to store 31 to V3700
Vmem[3700] = 31;

//How I want to address the array
V3700 = 31;

//Another example
if(V3700 > 5) printf("V3700 is greater than 5.\n");

有什么方法可以缩写数组名和地址吗即使八进制的部分太多,十进制的值是所有的工作,我是可以接受的我知道我可以定义
我正在使用Ubuntu12.04和GCC4.6.3开发。

最佳答案

没有比

#define V3700 (Vmem[3700])

如果你有很多这样的例子,你可以编写一个程序,生成一个包含所有define语句的头,这样你就不用把它全部输入了。

09-05 13:38