A PLC simulation system including a PLC simulator that cyclically repeats processing based on a first cycle, and an external simulator that cyclically repeats processing based on a second cycle, the PLC simulator comprising: a storage unit for holding data for executing a program, the storage unit being configured to be accessed by the PLC simulator and the external simulator; and a first execution unit for executing a program accompanying processing for inputting and outputting data to and from the storage unit, the external simulator comprising: a second execution unit for executing a program accompanying processing for inputting and outputting data to and from the storage unit, wherein the second execution unit includes a detection unit for detecting that program execution in the first execution unit is complete, and the second execution unit, after executing the program, is configured to suppress execution of the program accompanying access to the storage unit, until the detection is performed, characterized in that the PLC simulator comprises a socket interface for communicating with the external simulator, and is configured to receive a command from the external simulator for causing the PLC simulator to execute predetermined processing, wherein the first execution unit is configured to execute processing in accordance with the command received using the socket interface, wherein the command includes a notification command for notifying the external simulator of a status of program execution by the first execution unit, and wherein the second execution unit is configured to perform the detection using the notification command. a storage unit for holding data for executing a program, the storage unit being configured to be accessed by the PLC simulator and the external simulator; and a first execution unit for executing a program accompanying processing for inputting and outputting data to and from the storage unit, the external simulator comprising: a second execution unit for executing a program accompanying processing for inputting and outputting data to and from the storage unit, wherein the second execution unit includes a detection unit for detecting that program execution in the first execution unit is complete, and the second execution unit, after executing the program, is configured to suppress execution of the program accompanying access to the storage unit, until the detection is performed, characterized in that the PLC simulator comprises a socket interface for communicating with the external simulator, and is configured to receive a command from the external simulator for causing the PLC simulator to execute predetermined processing, wherein the first execution unit is configured to execute processing in accordance with the command received using the socket interface, wherein the command includes a notification command for notifying the external simulator of a status of program execution by the first execution unit, and wherein the second execution unit is configured to perform the detection using the notification command. a second execution unit for executing a program accompanying processing for inputting and outputting data to and from the storage unit, wherein the second execution unit includes a detection unit for detecting that program execution in the first execution unit is complete, and the second execution unit, after executing the program, is configured to suppress execution of the program accompanying access to the storage unit, until the detection is performed, characterized in that the PLC simulator comprises a socket interface for communicating with the external simulator, and is configured to receive a command from the external simulator for causing the PLC simulator to execute predetermined processing, wherein the first execution unit is configured to execute processing in accordance with the command received using the socket interface, wherein the command includes a notification command for notifying the external simulator of a status of program execution by the first execution unit, and wherein the second execution unit is configured to perform the detection using the notification command.