Search the Community

Showing results for tags ' etc. all the mb public/native function codes are supported. 32-bit integers/floats as single entity are supported with byte and word level swapping. a separate utility automates the data mapping to your plc logic. features -serial master (basic requ'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 266 results

  1. Hello, In past i was using Siemens S7 300 and Simatic 5.3. So a long time ago. I restart look back to plc because i need to monitor the temperature of my heating system. So bought a plc that is a IEC61131-3 standard and  OpenPCS as Develop software.  So i begin to play with OpenPCS because  Im very rusty.  SO i create a function, that i named FC_TEST . When i compile the below code i get an error E: S5004: Function blocks instances are invalid in 'FUNCTION'-POUs, STRUCTs, and in ARRAYs.  It seams that Timer block inside the function FC_TEST are not allowed, i understood right ? (*  --------- DECLARATION  ---------  *) VAR_INPUT T_1 : TIME ; (*Declare T_1 as a Time Input ==> Set the Time of Timer *) START : BOOL; (*Declare START ad BOOL Input ==> Start The Time of the TIMER *) END_VAR VAR MY_TON : TON; (*Instantiate MY_TON as Timer type TON*)  END_VAR (*  --------- FC PROGRAM  ---------  *) MY_TON(IN := START , PT := T_1 ); FC_TEST := MY_TON.Q;   (*  --------- CALL THE FC---------  *) tmp2 := FC_TEST(T#2s, I0_0);  (* I0_0 is a input*) Thanks  Marco  
  2. connection to omron CJ1M PLC

    I have an omron PLC (CJ1M type) at home which I would like to connect to, however, lately, I can't anymore.  I'm trying on two different PC's a newer and an older one, both running on windows 10. 1 is just mentioning a DLL error and I can't even start cx-programmer, the other one seems to work, however, when I try to go online it always fails I'm using a usb to serial device and after some searching on the net, I thought the issue was with the prolific driver.  I tried all kind of fixes, but nothing seemed to work.  I have now purchased another device, the XS8801 from usconverters and installed the latest driver.  I have checked if cx programmer is set to work with the correct port and this is the case. My knowledge is very limited but I would really want to connect to that PLC again, so hoping someone out here is able to help me. Thanks a lot    
  3. Hi all, I am currently having a project of polling data from PLC CJ1M using Advantech ECU-1051 IoT gateway which support rs-232 serial connection (Host Link) to poll data from the PLC for data acquisition and monitoring, I would like to use peripheral port since rs-232c port is used for HMI. However, I am currently stuck at make the connection between those two devices. I did setup same transmission configuration between them (baudrate, Unit number, start/stop bits,...). Is there any configuration that I have missed to make the communication works?  
  4. Check serial connection to Omron PLC

    Hello, I am building an application in CitectSCADA and I want to communicate with an Omron Sysmac CS1G. The connection between the plc and the Citect computer is through an ethernet to serial adapter (the computer doesn't have com ports on board). I'm having some difficulty establishing the communication and I want to make sure that I can actually reach the plc. Is there a way to check that the computer can reach the plc over the serial connection without using CX programmer? Maybe using Hyper Terminal, Putty or something similar. Thank you, Liron
  5. Dword to Float on FX3GE

    Hello! I have a float number (HEX: 3CA01D0F) in Big Endian. It's 0.0195451062. I get it from the sensor and store it in a double word variable. Could you help me? How can I convert DWord to Float? If i use DFLT instruction, It treats DWord as an integer (1017126159) and just gives me 1.017126 e+009 Thanks in advance.
  6. Hi:         How to use data type Word to perform math function without converting to Int or Uint ?  -----> Error    26    The '+' operator is not supported by WORD data type.     thanks    
  7. Union

    Hello! I am trying to get hold of the bits in a word, i have read that union is the way to go. My problem is that i cant figure out how union works. I have made a union between a word (16bit) and an array(0...15). The way I understood this was that the word now automaticly updates the array so that when the least significant bit in the word should update array[00] and so on. This is not happening. When I monitor the variables I can see the word change, but nothing happens with the array. Have I misunderstood the consept and what should I do to get hold of the bits?
  8. HI All,  I have an issue with my SCU32 communication.  Back ground Two SCU32s  (top and bottom side) connected via a 1100M datacable  using port1 ( 9600bps,  8-2-E, start code FF, end code FE, Tx save to d1000-d1200 , Rx save to d2000-d2200). PORT2 of bottom SCU32 is connected to a compass( 2 wire, 8-1-N, 19200 bps, serial gateway MODBUS ). Refer to photo Issue  Without compass, the receiving data at top is very stable and is didn't see any fluctuation. But if is compass is connected at bottom side port2, there is a fluctuation at the top side RX data(specifically d2000-d2005 ) .  I checked the data a bottom side TX (d1000-d1200) and it is stable. Only after sending the data and Receiving at Top side, then only the starting words fluctuate. I am not sure sure what is wrong, I am using logical ports for the DTXDU/DRXDU and compass.   Appreciate all your feedback and suggestions.  
  9. Good day everyone, before I start asking my question, just want to let you all know that my knowledge with PLC is not that good. I'm still learning on how to do it. So currently I'm working on a project that trying to obtain data from Omron PLC. I was told that I can't touch the Omron PLC program or modify it. That Omron PLC is connected in an isolated network within a router. Other than adding Network Card on the device, can I use another PLC (any brands) to get the data from that Omron PLC through the router? The communication protocol using here is Ethernet. Can i just tapped into the network and take the data with that way? Or the other method I'm thinking is that, the Omron PLC will feed the data to a server, can I just obtain that data from server by using OPCUA? I heard there's some PLC that have the OPCUA function, I just make my PLC into the cilent and request the data of that Omron PLC from server through Ethernet. Is this possible? Please let me know whether my method works or not, thanks in advance guys!
  10. VBA issue on FTViewSE Clients

    I am having a very weird issue that Rockwell was not able to help with.  I have a new SE application that I converted from RSView32 and I re-wrote some VBA code associated with the project.  The code works fine on the server while the screen is running in studio.  Once I deploy a Client it no longer works.  It just sits there like its waiting for my trigger to go off, but I am seeing it sit there with a 1 so i know it should be executing the code because as soon as i open the screen in studio and press play the code executes and my data is there.  Does anyone have any ideas for me?   Thanks
  11. I'm editing an old program for a customer that has a zillion user-defined data types. Scrolling through the list trying to find a specific type definition is taking way too long. Is there and easy way to find a specific data type definition? It would help if I knew how to collapse the view so I don't have to scroll through each member of every type. There doesn't seem to be any right-click menu items that would collapse the view.
  12. How do you test PLC logic?

    We have been working with PLCs for long time. We used to develop PLC logic, partly test it on an emulator and test the rest on the partly energised equipment. From time to time working with computer software development (C# and JavaScript) I was always looking for something similar to unit testing in the PLC world. As I couldn't find anything at that time I've started developing own automated testing tool. Now we use this tool, which basically simulates PLC inputs in defined actions and checks expected behaviour of internal tags or/and PLC outputs. If it behaved the way we expected, it's PASS, otherwise it's FAIL. We break complex logic into small parts and create unit tests for it. By creating more of these unit tests we can test PLC logic of any complexity. The software called PLC Logic Prover and it's free at https://www.controlx.io Recently, I've been told that there is no point to develop anything new if there are already great tools on the market. Honestly, I didn't do proper research earlier, so I'm here asking the experts. What do you use to test PLC logic? What automated testing tools do you use? Is it using IO simulation or it can test logic by other means? Your replies are appreciated. Thanks, Alex
  13. Hello, I'm new to CX-Programming and I could really use your help. I want to make function block that will check the bit status from a word input variable. I made input variable and internal variable array of bool(32) and I thought I can just use the code example: array[1]:=word.1 etc... but it is not allowed in CX-programmer. My goal is rearranging  the bits status from the input word to the output word. I don't need just making the 0 to 1 or otherwise... Thank you in advance.
  14. Hi! I would like to ask how could I send data from PC to CJ1M PLC, by SCU-41 module and RS232 cable, in order to activate an actuator (LED)? In my environment, I have a sensor that sends data from PLC to PC (I'm checking data, "HelloWrld" with Putty), with this configuration: And I have another section where I want to read the data from the PC in ordr to activate a LED I would like when I send for example a letter 'a' trough Putty, the LED activates. How could I do that? Thank you very much!
  15. Hello, I'm using RSLogix 500 application for LAD programming. I would like to convert the float data type to integer data type and vice versa. I tried with the COP instruction as some had mentioned in other forums, but it was not working. So any suggestions on solving that issue would be helpful.
  16. Hello! I am new at PLC programming. I am using TM221CE16R PLC with TM3AI8 analog input module and SoMachine Basic v1.6. I am trying to scale analog input value. I am using 4-20 mA pressure sensor. I managed my wiring so that I get raw values in SoMachine Basic. But I don't know how to scale these values to usable values. My sensor works in range 0 - 16 bar. What is best way to get values? Is it PID function block or multioperand function block using equations to get range 0 - 16? I will appreciate your help.   Thanks in advance!
  17. Hi All need to convert a Decimal Value into Ascii code to send out on serial 485. eg. Weight comes in as Int 12345 i need to send it out in Ascii as 23 32 20 31 32 33 34 35. I have created an array 0 of 8 (Word) DB. Is there an easy way split the int into Digits convet in into HEX and slot the value into the various array positions? Array 0 of 8 = 23 means # Array 1 of 8 = 32 means 2 (Station ID) Array 2 of 8 = 20 means Space Array 3 of 8 = 31 means 1 Array 4 of 8  = 32 means 2 Array 5 of 8 = 33 means 3 Array 6 of 8 = 34 means 4 Array 7 of 8 = 35 means 5 Array 8 of 8 = D means CR    this sends the value of 12345 to Display ID 2 . need help to convert the decimal number in ascii. the decimal number will be max of 5 digits and less than 32000   any help will be greatly appreciated.
  18. Hey everyone, I have a CJ1M PLC with a CJ1W-SCU21-V1 serial card. It is unit 6 and I am using port 1. I have bit 1659.06 ((1500 + 25 * Unit #) +9, bit 6) as "characters in buffer" but it never comes on (data is being received through the port successfully). It is on No-Protocol mode. Does anyone have any ideas as to how I can detect data in the buffer?
  19. Serial comm with FX1N PLC

    I need to communicate with a Mitsubishi PLC using Matlab. To do that, I open a serial communication with the appropiate parameters (7,e,1,9600), and write an ASCII message based on the manual I have (attached). I have tried examples as the one in the attached image. The response starts with a 6, that is, the ASCII number for ACK, so something must be working. But the rest of the response is junk (149, 149, 149...), although its length depends on the input length (if I add terminator, the response is longer, and so on). I am completely stuck. Some information that might be helpful: I am using a Serial to USB converter that I have used successfully with other PLC (which used Modbus, so everything was easier) There's a VB application (of which I don't have the code) that is able to connect to the PLC (I need to connect directly without using this intermediate app). I have decompiled it trying to get some info, but was just able to confirm the 7,e,1,9600 parameters, since the rest of the code is too mangled to analyze The attached manual was sent to me by the guy who designed the PLC and its ladder code, so I guess it is the correct one I have tried the echo mode (TT) to no avail, response is always the same I have some doubts regarding the reading of a value (see attached image). Why is there a second message from the PC? Shouldn't I just need to read the response? GX Developer tells me that the address D8120 (which is supposed to define the comm format and protocol) contains a 0, which seems weird. Any help or hint would be greatly appreciated. Thanks jy992d69901e.pdf
  20. I'm working on simple structured text program which takes in DWORD values, does some math on them and then outputs in DWORD type. What data type should I be using and how can I make this work?  This is one of the lines from the code(everything DWORD) and I get 'operator not supported by DWORD data type' XPos3 := XPos1 + (2*XIncrement);  
  21. I'm using simple function block, one input and one output, like in this example: Problem I have is how to call function block and use inverted (NOT) value , ie instead 5.01 I need to use NOT (5.01) . Of course I could create new symbols that are inverted values of actual inputs but i'm trying to avoid that, number of addresses is significant.
  22. Hello, CJ2M CPU-32 to IAI motion controller through ethernet/ip I'm working on programming electric actuators to pick up parts from a tray. I will have x (row) and y (column) coordinates that I need to update to move the actuators. So to go through the whole tray I would have to use nested loops. (below what i'm trying to achieve if i was doing it in C++)                                           6 Rows and 6 Columns, palettizing                                           data rows&columns DWORD (Row1,row2,row3...row6; col1,col2...col6)                                           c++ code                                           for i=0,i++,i<6;                                               rowData = row                                               for i=0,i++,i<6;                                                   colData = col                                                   execute movement                                                   wait for confirmation                                               end                                           end I have a way of doing it but it will require a lot of repetitive lines and typing every step, and I was wondering if there is a way on every iteration to increment the data location instead of the contents. In the picture below you can see the example where the goal is to copy data from D8100 to D8000, then in next step from D8102 to D8000, then from D8104 to D8000 and so on. So far in the documentation I was only able to find how to increment contents. Is it even possible to do what I want to?
  23. To calculate a walking or moving average I want to use WSFT and SUM in a function block. Does anybody have experience with this? The idea is to take a 1 hour average of a proces value and store this average value each hour. The software then have to calculate the walking or moving average over say 4 hours or 12 hours with a maxium of 24 hours. See attached files with logic but then not in a function block     Walking_AVG.cxp Walking_AVG.opt Walking_AVG.bak
  24. Sorry for my bad english speaking. I want to change the baud rate to 19200,38400,.... for send it via Programmer-Serial-Port. The software GX-Developer can do it!. When the PLC is switched on, we generate a value in the data register D8116 and D8117. GX Developer reads the PLC type and data registers D8116 and D8117 at startup and generates a value. This value is written in D8118 and D8119. The big question is: how is D8118 and D8119 generated ??
  25. Mitsubishi Fx5uc

    hello everyone, Im new with mitsubishi and  ive got a project with a Fx5uc but im stucked in communication protocol to communicate with a weintek HMI ive already tested easybuilder simulation with a modbus tcp ip symulator and it works but im completlely lost about mitsubishi, is there a way to communicate via Modbus TCP/IP? or which protocol would u recommend as i have to connect 2 drives as well. thank you in advance